SQL 服务器中存储过程中的脚本有什么方法吗?

Is there any way to a script inside stored procedure in SQL Server?

我知道这是一个奇怪的场景。但是我需要在 SQL 服务器的存储过程中执行脚本。

我创建了一个 SQL 脚本来创建测试 table 并使用原始 table 中的一些数据填充它。此脚本位于单独的文件中。

我还更新了一些存储过程以使用测试模式。我在存储过程中创建了一个名为 @IsTestMode 的参数。

如果@IsTestMode为真,它检查测试table是否存在。如果测试 table 不存在,它应该 运行 那个 SQL 脚本来创建测试 table 并用原始 table 中的数据填充它。

是否可以在存储过程中执行 SQL 脚本(在单独的文件中)?

不要将脚本存储在文件中,而是使用该代码创建一个新的存储过程,比如 dbo.CreateTestData。然后,在你的主程序中:

CREATE PROC dbo.Whatever
@IsTestMode BIT = 0 /*Default to no*/
AS
BEGIN
IF @IsTestMode = 1
EXEC dbo.CreateTestData;

DoOtherStuff...
END
GO