ctr*_*yan 4 sql t-sql sql-server stored-procedures information-schema
我试图使用存在于一个数据库但不存在于另一个数据库中的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
Run Code Online (Sandbox Code Playgroud)
这给了我一行中的查询定义,所以当我有这样的评论时
--Some comment
SELECT Column
FROM Somewhere
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)