これは例外です:'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がこの状況で異なる動作をする理由に向けられていることに注意してください。2番目のサンプルが機能しなかった場合は、これを試してください。これにより、エラーなしで挿入したのと同じデータと、 Microsoft SQL Server 2008 R2(RTM)-10.50.1600.1(X64)...のSQLServerバージョンが得られます。
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を入れると、上記と同じ例外がスローされます。
アップデート:
これは解決されました。この動作は、コンパイル時にのみ発生し、SQLServerではこれをコンパイルできます。ただし、実行すると、ASを使用するすべてのデータ型に対して例外がスローされます。