代码如下;
SET @QUERY = '
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
--
CREATE PROCEDURE [dbo].[sp_sp_duration_create_sp_duration_data_log]
@sp_name varchar(100),
@duration int,
@details varchar(250)
AS
BEGIN
IF @duration > 100
Begin
INSERT INTO [sp_duration_logs]
([sp_name]
,[duration]
,[details])
VALUES
(@sp_name
,@duration
,@details)
END
END
';
EXECUTE('USE ['+@DBNAME+']; '+@QUERY);
当我尝试执行这个t-sql命令时,我得到一个错误:
Msg 111,级别15,状态1,过程sp_sp_duration_create_sp_duration_data_log,第16行"创建/修改"
我想我需要在查询中使用'GO',但是当我使用GO时,另一个错误发生了。(名为"GO"或其他东西的无效对象)。
SET @QUERY = 'SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO
//your code
';
EXECUTE('USE ['+@DBNAME+'] GO '+@QUERY);
试试这个
SET @QUERY = '
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_sp_duration_create_sp_duration_data_log]
@sp_name varchar(100),
@duration int,
@details varchar(250)
AS
BEGIN
IF @duration > 100
Begin
INSERT INTO [sp_duration_logs]
([sp_name]
,[duration]
,[details])
VALUES
(@sp_name
,@duration
,@details)
END
END ';
EXECUTE('USE ['+@DBNAME+']; '+@QUERY);