请使用下面的脚本。它会为表中的所有行选择所有列。您也可以添加自定义列,其中查询字符串条件:
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:它不能选择。 –