当前位置: 首页 > 面试题库 >

MSSQL:如何用代码编写存储过程的创建脚本?

怀晋
2023-03-14
问题内容

我正在尝试使用一个数据库中存在但另一个数据库中没有的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


 类似资料:
  • 问题内容: 我正在学习如何编写存储过程。我知道了,但我没有。我知道事情是这样的。 因此,我被困住了,我试图理解的是。编写一个存储过程,该过程接受一个Territory ID,Territory Description和Region ID,并将它们作为新行插入Northwind的Territories表中。 好吧,我知道我可以做这样的事情,我相信: 但是那我可能是错的。但我不知道在哪里插入然后作为表

  • 本文向大家介绍MSSQL事务的存储过程,包括了MSSQL事务的存储过程的使用技巧和注意事项,需要的朋友参考一下 在酒店管理系统开发中,我们会创建房间表和房间类型表(房型表)这两个表,如下图所示: 房型表:RoomType             房间表:Room   首先这两个表的关系:Room是从表,RoomType是主表,两表有主外键关系,RoomType.rTypeId=Room.rType

  • 我能够在下面的SQL Server 2008 R2中创建存储过程,但现在遇到了困难,因为我需要以存储过程将使用事务并检查insert语句中的错误的方式来进行创建。当发现错误时-事务应该回滚,并且不应该提交任何东西。如有任何帮助,我们将不胜感激。 使用Northwind GO CREATE PROC spEmployee@employeeId int作为SELECT*FROM employees W

  • MySQL 存储过程是一些 SQL 语句的集合,比如有时候我们可能需要一大串的 SQL 语句,或者说在编写 SQL 语句的过程中需要设置一些变量的值,这个时候我们就完全有必要编写一个存储过程。 编写存储过程并不是件简单的事情,但是使用存储过程可以简化操作,且减少冗余的操作步骤,同时,还可以减少操作过程中的失误,提高效率,因此应该尽可能的学会使用存储过程。 下面主要介绍如何创建存储过程。 可以使用

  • 我的数据库中有几个存储过程,结构如下: 我被要求在每个有它的过程中用另一个子句替换中的表。 我经过了很多研究,但我应该创建一个自己工作的脚本,我还没有找到合适的东西。例如,我找到了显示存储过程源代码的,但是有没有办法将其放入变量中以便编辑它?

  • 为了解决MySql中的问题,即某些语句只允许在我试图创建的存储过程中运行,然后在JdbcTem板提交的sql中删除存储过程。一个简单的例子是(这恰好是在Spring引导中): cript.sql在哪里 在mySql workbench中运行它可以很好地工作,但是由JdbcTemplate提交时会出现错误 据我所知,这是因为JdbcTemplate不允许使用那些