And*_*ock 41 sql-server ado.net
如何通过ADO.NET在单个命令(单次执行)中执行以下SQL?
ALTER TABLE [MyTable]
ADD NewCol INT
GO
UPDATE [MyTable]
SET [NewCol] = 1
Run Code Online (Sandbox Code Playgroud)
GO
不支持批处理分隔符,如果没有它,则第二个语句将失败.
除了使用多次command
执行之外,还有其他解决方案吗?
Jot*_*aBe 67
该GO
关键字不是T-SQL,但是SQL Server Management Studio中的神器,让您在多个batches.Ie脚本文件的执行,当你在运行一个SSMS T-SQL脚本文件分开,该报表是分开分批运行通过GO
关键字.更多细节可以在这里找到:https://msdn.microsoft.com/en-us/library/ms188037.aspx
如果您阅读它,您将看到sqlcmd和osql也支持GO
.
SQL Server不理解该GO
关键字.因此,如果您需要等效项,则需要单独单独运行批处理.
Tim*_*ter 17
删除GO
:
String sql = "ALTER TABLE [MyTable] ADD NewCol INT;";
cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
sql = "UPDATE [MyTable] SET [NewCol] = 1";
cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)
看来你可以使用这个Server
类.这是一篇文章:
小智 8
当您的设置中更改了批处理分隔符时,也会发生这种情况。在 SSMS 中单击工具 --> 选项并转到查询执行/SQL Server/常规以检查批处理分隔符。
我刚刚用一个没有 CR LF 行结尾的脚本失败了。关闭并重新打开脚本似乎会提示修复。只是另一件事要检查!
小智 7
在 SSMS(SQL Server 管理系统)中,您可以在任何查询之后运行 GO,但有一个问题。分号和 GO 不能在同一行。去搞清楚。
这有效:
SELECT 'This Works';
GO
Run Code Online (Sandbox Code Playgroud)
这也有效:
SELECT 'This Too'
;
GO
Run Code Online (Sandbox Code Playgroud)
但这不会:
SELECT 'This Doesn''t Work'
;GO
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
51554 次 |
最近记录: |