我在Source库中新建一个Source库的当前查询窗口,输入以下语句,建立成功。USE test
GO CREATE PROC [dbo].[test]
AS 
BEGIN
PRINT 'HI'    
END然后,我把上面的语句改成以下存储过程:
Create PROCEDURE [dbo].[Create_Other_DataBaseProcedure]
AS
BEGINexec('USE test;GO; CREATE PROC [dbo].[test]
AS 
BEGIN
PRINT ''HI''    
END')END
报错为:消息 102,级别 15,状态 1,第 1 行
'GO' 附近有语法错误。
消息 111,级别 15,状态 1,第 7 行
'CREATE/ALTER PROCEDURE' 必须是查询批次中的第一个语句。请教以上语句怎么修改?

解决方案 »

  1.   

    create PROCEDURE [dbo].[Create_Other_DataBaseProcedure]
    AS
    BEGINexec('USE test;GO;') exec('CREATE PROC [dbo].[test]
    AS 
    BEGIN
    PRINT ''HI''    
    END')END
      

  2.   

    ALTER PROCEDURE [dbo].[Create_Other_DataBaseProcedure] 
    AS 
    BEGIN exec('
    use D
    go 
    CREATE PROC [dbo].[test] 
    AS 
    BEGIN 
    PRINT ''HI''    
    END
    go
    ') END 
      

  3.   

    To sdhdy :用你的代码,我试了一下,test存储过程还是在Source中建立的,不是在test库中建立的。To dawugui:老兄你改的和我改的没区别呢,还是报:
    消息 102,级别 15,状态 1,第 3 行
    'go' 附近有语法错误。
    消息 111,级别 15,状态 1,第 8 行
    'CREATE/ALTER PROCEDURE' 必须是查询批次中的第一个语句。
      

  4.   

    go --这里再加个GO?
    ALTER PROCEDURE [dbo].[Create_Other_DataBaseProcedure] 
    AS 
    BEGIN exec('
    use D
    go 
    CREATE PROC [dbo].[test] 
    AS 
    BEGIN 
    PRINT ''HI''    
    END
    go
    ') END 
      

  5.   

    dawugui ,代码不对,我使不动。
      

  6.   

    ALTER PROCEDURE [dbo].[Create_Other_DataBaseProcedure] 
    AS 
    BEGIN exec('
    use D
    go 
    CREATE PROC [test].[dbo].存储过程名称 
    AS 
    BEGIN 
    PRINT ''HI''    
    END
    go
    ') END 
      

  7.   

    dawugui兄,建存储过程时,不能指明数据库名的,Create proc的语法是这样:CREATE PROC [dbo].存储过程名称 而不是这样:CREATE PROC [test].[dbo].存储过程名称 用CREATE PROC [test].[dbo].存储过程名称报错:'CREATE/ALTER PROCEDURE' 不允许将数据库名称指定为对象名前缀。
      

  8.   

    try:
    create PROCEDURE [dbo].[Create_Other_DataBaseProcedure]
    AS
    BEGIN
    exec('CREATE PROC test.[dbo].[test]
    AS 
    BEGIN
    PRINT ''HI''    
    END')END
      

  9.   

    sdhdy,Create Proc的语法是不能引用库名的。手工转就没有意义了,现在也没有人去手工操作这个,我现在就想把我Source库上的一存储过程建到test库上面。test库是我通过create database新建立的一个库,我做的是把Source库上的内容移植到D库上的操作,test库是随时产生。并把Source库上的所有都移到test库中。现在存储过程移不了,我很郁闷。