我想使用在Server 2017好中执行的node-mssql来执行这个(简化的)查询:
USE [Journal]
[GO]
CREATE PROCEDURE [dbo].[EventDelete]
@NotificationID INT
AS
DELETE Notification
WHERE NotificationID = @NotificationID
[GO]node-mssql使用[GO]声明语法错误并需要分号,因此我尝试如下:
USE [Journal];
CREATE PROCEDURE [dbo].[EventDelete]
@NotificationID INT
AS
DELETE Notification
WHERE NotificationID = @NotificationID;现在我们得到了错误:
创建/更改过程“必须是查询批处理中的第一条语句。
所以让我们试试这个:
CREATE PROCEDURE [Journal].[dbo].[EventDelete]
@NotificationID INT
AS
DELETE Notification
WHERE NotificationID = @NotificationID;现在我们得到
RequestError:“CREATE/ALTER”不允许将数据库名称指定为对象名称的前缀。
当然,如果没有任何DB声明,它就会尝试附加到主错误:
在数据库“主”中拒绝创建过程权限。
发布于 2017-10-04 15:29:15
因此,写这个问题真的能让自己的思想变得清晰。
原因是存储过程需要在一个批处理中创建,该批处理意味着,没有其他任何内容。
使用USE [Journal]方法作为一个批处理执行.batch('USE [Journal]'),然后将SQLtoCREATE PROCEDUCE作为一个新的.batch(...)执行,依次执行。
除非节点-mssql中有另一种允许多批执行的方法?
https://stackoverflow.com/questions/46568662
复制相似问题