a)檢查表以找到需要創建的其他表的名稱 b)檢查表是否已經存在 c)如果沒有,創建它 d)填補她與新的數據如何使用變量作爲表名檢查表的存在
現在,這一切工作正常提升到能夠在檢查表是否存在部分:
set @NewTablename = (select NAME from SomeTable where ID= @i)
set @Tabelexists = 'select case when exists(select * from sys.tables where name = ''' + @NewTabelname + ''') then 1 else 0 end'
declare @check as int execute(@Tabelexists)
IF @check is NULL
BEGIN
Create Table
END
ELSE
BEGIN
execute('Delete from '+ @NewTableName)
END
<other stuff like inserts and so on)
但不知何故,@check似乎總是空當該表不存在,如果它存在,則爲1。
如果我檢查IF @check is null
只有TRUE部分執行,如果表不存在。如果確實存在在那一刻沒有執行.....
如果我檢查IF @check =1
只執行
@check價值的ELSE顯然始終是NULL或1或0 ..........
我在這裏不知所措! 如何使用變量作爲表名檢查表的存在?
Damien,我明白你在說什麼。但是,如果我不喜歡這樣我仍然沒有結果,我可以測試:
declare @check as int execute ('select case when exists(select * from sys.tables where name = ''' + @Tabelnaam + ''') then 1 else 0 end')
Damien,我明白你在說什麼。但是,如果我這樣做,我仍然沒有結果,我可以測試: – Henrov