【问题标题】:Is there any way to a script inside stored procedure in SQL Server?有没有办法在 SQL Server 的存储过程中编写脚本?
【发布时间】:2021-05-18 15:56:52
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 技术上是的,但这是个好主意吗?当然不。这肯定感觉像是XY Problem
  • 这是一个SQL脚本?将脚本的内容复制/粘贴到程序中:/
  • 可能是访问权限问题?在这种情况下,使用 sockets /pipes/ file flag/whatever 来向调度程序发出信号,该调度程序将启动脚本。

标签: sql sql-server ado.net


【解决方案1】:

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

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

DoOtherStuff...
END
GO

【讨论】:

  • 确实做到了。感谢您的回复。
猜你喜欢
  • 2019-12-03
  • 2023-01-21
  • 2015-03-09
  • 2021-10-07
  • 2012-01-17
  • 2010-09-15
  • 2011-04-01
  • 2018-08-09
  • 2019-10-31
相关资源
最近更新 更多