3

こんにちは、次の問題があり、解決できません。

このDbCommandSQL文を実行しようとしています

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句を追加しているようです-そうですか?XLibPKIDこのALTER 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 に答える