这个给出了例外:'NVARCHAR' 不是一个公认的内置函数名。
DECLARE @BatchIds TABLE
(
BatchId AS UNIQUEIDENTIFIER ,
UserLogonId AS NVARCHAR(80) ,
ReportStatus NVARCHAR(100) ,
Created DATETIME ,
RunTimeInMins AS INT ,
ReportName NVARCHAR(200)
)
当我删除 NVARCHAR 的“AS”时,它没有给出任何异常。
DECLARE @BatchIds TABLE
(
BatchId AS UNIQUEIDENTIFIER ,
UserLogonId NVARCHAR(80) ,
ReportStatus NVARCHAR(100) ,
Created DATETIME ,
RunTimeInMins AS INT ,
ReportName NVARCHAR(200)
)
关于为什么的任何建议?
更新:
请注意,我的问题更多是针对为什么 AS 在这种情况下的工作方式与试图解决工作情况不同的原因。对于那些无法让第二个样本工作的人,请试试这个。这为我提供了与Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)相同的数据和 SQL Server 版本。
DECLARE @BatchIds TABLE
(
UserLogonId NVARCHAR(80) ,
ReportStatus NVARCHAR(100) ,
Created DATETIME
)
INSERT INTO @BatchIds
( UserLogonId ,
ReportStatus ,
Created
)
VALUES ( 'Test1' ,
'Test2' ,
'2012-08-08'
)
SELECT *
FROM @BatchIds
SELECT @@VERSION AS [Version]
在此查询中为 NVARCHAR 放置一个 AS 会引发与上述相同的异常。
更新:
这解决了。此行为仅在您编译它并且 SQL Server 允许您编译它时出现。但是当你运行它时,它会为任何使用 AS 的数据类型抛出异常。