您好我有以下问题,我无法解决。
使用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。
感谢您的帮助。
答案 0 :(得分:1)
我不完全确定你要做什么 - 但你的做法似乎过于复杂......
您似乎在DEFAULT
列中添加了XLibPKID
条款 - 对吧?这个ALTER TABLE
语句也应该这样做:
command.CommandText =
"ALTER TABLE [dbo].[DOMAIN_XLibPKID_D] " +
" ADD CONSTRAINT DF_XLibPKID DEFAULT (0) FOR XLibPKID";
command.ExecuteNonQuery()
这只会在您的表格中添加一个单独的DEFAULT CONSTRAINT
。
答案 1 :(得分:-2)
尝试在每个语句之间添加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';"