1

私は持っていますが@db_out = 'aux.dbo.some_table_name'、ドロップする方法がわかりません。次のようなその変数に基づいて作成します。

IF OBJECT_ID(@db_out) IS NOT NULL DROP TABLE "@db_out" - not working
CREATE TABLE "@db_out"  .... etc

master.dbo.@dbo_out を作成します

その変数を使用してそのテーブルを作成したり、検証してドロップしたりするにはどうすればよいですか?

4

2 に答える 2

3

varchar 変数でステートメントを作成して実行する必要があります。

declare @strSql as varchar(max)

IF OBJECT_ID(@db_out) IS NOT NULL
BEGIN
   EXEC ('DROP TABLE [' + @db_out + ']')
END
set @strSql = 'CREATE TABLE [' + @db_out + '] (' -- Etc
EXEC (@strSql)
于 2012-04-04T08:56:24.860 に答える
1

動的 SQL を記述する必要があります。

SET @sql = 'IF OBJECT_ID(@db_out) IS NOT NULL DROP TABLE ' + @db_out + '; '
SET @sql = @sql + 'CREATE TABLE ' + @db_out + ' (...)'
EXEC(@sql)
于 2012-04-04T08:59:05.250 に答える