5

通过 sqlcmd 执行以下脚本失败。但是,可以通过 ssmo 或 SQL Server Management Studio 执行它。

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

输入.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上设置quoted_identifier 选项。-Ienable它在 SQLCMD 中默认为 OFF,但在 SSMS 中默认为 ON,这就是您的测试在 SSMS 中工作的原因。

在此处阅读有关 QUOTED_IDENTIFIER的更多信息。

于 2010-10-29T17:12:15.717 回答
0

为此使用方括号:[ID]

于 2010-10-29T16:56:02.403 回答