我有@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
如何使用该变量来创建该表或验证它并删除它?
我有@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
如何使用该变量来创建该表或验证它并删除它?
您必须在 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)
您需要编写动态 SQL。
SET @sql = 'IF OBJECT_ID(@db_out) IS NOT NULL DROP TABLE ' + @db_out + '; '
SET @sql = @sql + 'CREATE TABLE ' + @db_out + ' (...)'
EXEC(@sql)