3

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

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。

谢谢你的帮助。

4

2 回答 2

1

我不完全确定您要做什么-但是您的方法似乎过于复杂...

您似乎要在您的专栏中添加一个DEFAULT子句- 对吧?XLibPKIDALTER TABLE声明也应该这样做:

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

DEFAULT CONSTRAINT这只是为您的表格添加了一个单独的。

于 2011-06-06T13:03:38.470 回答
-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';" 
于 2011-06-06T12:58:47.980 回答