此例給出了例外:'NVARCHAR'不是公認的內置函數名稱。NVARCHAR的奇怪例外
DECLARE @BatchIds TABLE
(
BatchId AS UNIQUEIDENTIFIER ,
UserLogonId AS NVARCHAR(80) ,
ReportStatus NVARCHAR(100) ,
Created DATETIME ,
RunTimeInMins AS INT ,
ReportName NVARCHAR(200)
)
當我刪除了 「AS」 爲NVARCHAR,它不給任何異常。
DECLARE @BatchIds TABLE
(
BatchId AS UNIQUEIDENTIFIER ,
UserLogonId NVARCHAR(80) ,
ReportStatus NVARCHAR(100) ,
Created DATETIME ,
RunTimeInMins AS INT ,
ReportName NVARCHAR(200)
)
對此有何建議?
更新:
請注意,我的問題是更針對AS爲什麼在幕後這種情況不是試圖解決一個工作環境的工作不同。 對於那些無法獲得第二個樣品的人,請嘗試此操作。 這給了我,我插不出錯相同的數據和SQL Server版本 的Microsoft SQL Server 2008 R2(RTM) - 10.50.1600.1(X64)....
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]
把一個AS中此查詢爲NVARCHAR引發與上面相同的異常。
UPDATE:
這是解決。這種行爲只有當你編譯它時,SQL Server才允許你編譯它。但是當你運行它時,它會爲使用AS的任何數據類型引發異常。
即使是第二個也應該給出例外。數據類型不能使用別名 – praveen 2012-08-08 15:28:26
@praveen:The第二個人雖然沒有給出任何例外。 – Kash 2012-08-08 15:33:21
這很奇怪你使用的是哪個sql版本?它應該失敗,因爲別名用於指定列名稱 – praveen 2012-08-08 15:38:33