我正在为MS SQL SERVER中数据库中所有表的所有列跨列运行验证脚本。我的查询现在是这样的:
CREATE PROCEDURE [dbo].[DDS1718_Validation]
AS
BEGIN
SET FMTONLY OFF
DECLARE @ActualTableName AS NVarchar(255)
SELECT @ActualTableName =QUOTENAME(TABLE_NAME )
FROM INFORMATION_SCHEMA.TABLES
但是,这仅选择一张表的输出。 谢谢。
答案 0 :(得分:0)
您可以使用表值参数。在调用Sp之前,用所有表名填充表值参数,然后调用sp并传递参数,就像传递int或float参数一样。
答案 1 :(得分:0)
DECLARE @ActualTableName AS varchar(max)
SELECT @ActualTableName = COALESCE(@ActualTableName + ',', '') + TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
SELECT @ActualTableName
现在您有了所有表名,请在您的存储过程中发送此@ActualTableName。 在存储过程中,您可以使用','拆分此表名。