你好,我有以下问题,无法解决。
使用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';"