5

sqlcmdを介して次のスクリプトを実行すると失敗します。ただし、ssmoまたはSQL ServerManagementStudioを介して実行することはできます。

sqlcmd -S . -d test -i input.sql

input.sql:

CREATE FUNCTION test()  
RETURNS  @t TABLE ("ID" INT)  
AS  
BEGIN  
 RETURN  
END  

SQL Server Management Studioをsqlcmdモードにしても、失敗します。これは、スクリプトをSSMSでテストするときに問題になりますが、SQLCMDを使用して展開します。したがって、デプロイしようとしたときにコードが機能しないことがわかります。

sqlcmdがこのように動作するのはなぜですか?オフにする方法はありますか?

4

2 に答える 2

7

スクリプト内の識別子を区切るために本当に二重引用符を使用する必要がある場合は、スイッチを使用してSQLCMD-Ienableでquoted_identifierオプションを設定する必要があります。SQLCMDではデフォルトでオフになっていますが、SSMSではデフォルトでオンになっているため、SSMSでテストが機能します。

QUOTED_IDENTIFIERについて詳しくは、こちらをご覧ください。

于 2010-10-29T17:12:15.717 に答える
0

これには角かっこを使用します。[ID]

于 2010-10-29T16:56:02.403 に答える