我正在尝试使用一个数据库中存在但另一个数据库中不存在的 information_schema.routines 查询存储过程定义列表。
SELECT
t1.Routine_Definition
FROM
[server1].MyDatabase.INFORMATION_SCHEMA.Routines t1
LEFT JOIN
[server2].MyDatabase.INFORMATION_SCHEMA.Routines t2 ON t1.Routine_Name = t2.Routine_Name
WHERE
t2.Routine_Name is null
这给了我在一行中的查询定义,所以当我有这样的评论时
--Some comment
SELECT Column
FROM Somewhere
SQL 被注释掉,我无法使用该定义来创建 SP。
如何使用正确的换行符解析它?
或者
有没有更好的方法来获取这些脚本(使用代码)?
最佳答案
存储过程在 Management Studio 中仅显示在一行上。如果您运行查询并将结果写入文本,或使用以下命令,您将获得正确的换行符:
declare @sql varchar(8000) -- varchar(max) in SQL 2005+
SELECT
@sql = t1.Routine_Definition
FROM
INFORMATION_SCHEMA.Routines t1
print @sql
关于sql - MSSQL : How do you script Stored Procedure creation with code?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/513158/