請使用下面的腳本。它會爲表中的所有行選擇所有列。您也可以添加自定義列,其中查詢字符串條件:
DECLARE @Clients AS TABLE
(
SeqNo INT IDENTITY(1,1),
ClientName VARCHAR(255),
Qry VARCHAR(MAX)
)
DECLARE @v_Min INT,@v_Max INT,@TempQry VARCHAR(MAX)
INSERT INTO @Clients
(
ClientName,
Qry
)
SELECT
DISTINCT
TABLE_SCHEMA,
Qry = 'SELECT * FROM [DatabaseName].['+TABLE_SCHEMA+'].['+TABLE_NAME+']'
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME IN ('Your Table Name')
SELECT
@v_Min = MIN(SeqNo),
@v_Max = MAX(SeqNo)
FROM @Clients
WHILE ISNULL(@v_Min,0) <= ISNULL(@v_Max,0)
BEGIN
SELECT
@TempQry = Qry
FROM @Clients
WHERE SeqNo = @v_Min
EXEC(@TempQry)
SELECT
@v_Min = ISNULL(@v_Min,0)+1
END
您需要使用動態sql來實現此目標... –
使用這種多模式不是實現多租戶的好方法。這個設計被選中是否有原因? – Dai
我懷疑你需要使用動態SQL:它不能選擇。 –