0
我正在嘗試動態創建表。來自一個數據庫(@sourcedatabase)的表格用於在另一個數據庫(@targetdatabase)中創建表格。在T-SQL中創建server.database.table的動態路徑
這個工作正常,當我明確命名數據庫。但是,我希望它們是動態的,如下例所示。我已經閱讀了很多關於這一點,我很好,使用像
set @sql = 'DROP TABLE ' + @targetdatabase + '.' + @SomeNAME
execute (@sql)
,但我在的時候它變得更復雜一點茫然:
declare @sourcedatabase as varchar(max) = 'DATABASE1'
declare @targetdatabase as varchar(max) = 'DATABASE2'
declare @HighestID as int = (SELECT max(Id) FROM @sourcedatabase.system.Organisationtype)
declare @i as int = (SELECT max(Id) FROM @sourcedatabase.system.Organisationtype)
while @i >= (SELECT min(Id) FROM @sourcedatabase.system.LaagTypeOrganisatie)
BEGIN
--SOME ACTIONS
set @i = @i + 1
END
declare @x as int = (select count(*) from @targetdatabase.sys.tables where name = @SomeNAME)
IF @x <> 0
BEGIN
set @sql = 'DROP TABLE ' + @targetdatabase + '.' + @SomeNAME
execute (@sql)
END
正如你看到的我想有數據庫命名變量。 將整個腳本轉換爲一個exec語句非常複雜,閱讀起來不太漂亮。 在文本文件中讀取此腳本,在@targetdatabase en @sourcedatabase上進行替換然後執行它會是一個想法嗎?如果是這樣,這將如何完成?
我期待着您的意見和貢獻!
編輯:腳本作爲jobagent