sql server - DbCommand 不能在一个 ExecuteNonQuery() 中运行多个 SQL 命令



你好,我有以下问题,无法解决。

使用DbCommand,我尝试执行以下SQL语句

Dim strCommnad As String = 
"CREATE DEFAULT [dbo].[DOMAIN_XLibPKID_D] AS (0);" + Environment.NewLine +                                 
"CREATE TYPE [dbo].[XLibPKID] FROM BIGINT NOT NULL;" + Environment.NewLine +
"EXEC sp_bindefault 'DOMAIN_XLibPKID_D', 'XLibPKID';"
command.CommandText = strCommnad              
command.CommandType = CommandType.Text                
command.ExecuteNonQuery()

但我总是收到错误信息

关键字"CREATE"附近的语法不正确。

但是,当我从strCommand独立运行每个命令时,一切都很好。

我使用的是VS 2010 Professional和SQL Server 2008 R2 Express。

谢谢你的帮助。

我不完全确定你想做什么,但你的方法似乎过于复杂。。。

您似乎在XLibPKID列中添加了一个DEFAULT子句,对吗?这个ALTER TABLE语句也应该这样做:

command.CommandText = 
   "ALTER TABLE [dbo].[DOMAIN_XLibPKID_D]  " +
   "    ADD CONSTRAINT DF_XLibPKID DEFAULT (0) FOR XLibPKID";
command.ExecuteNonQuery()

这只是将一个单独的DEFAULT CONSTRAINT添加到您的表中。

尝试在每个语句之间添加一个GO

Dim strCommnad As String =  "CREATE DEFAULT [dbo].[DOMAIN_XLibPKID_D] AS (0);" + Environment.NewLine +
"GO; CREATE TYPE [dbo].[XLibPKID] FROM BIGINT NOT NULL;" + Environment.NewLine + 
"GO; EXEC sp_bindefault 'DOMAIN_XLibPKID_D', 'XLibPKID';" 

相关内容

  • 没有找到相关文章

最新更新