use entdb 
gocreate procedure dbo.aa
as 
...

解决方案 »

  1.   

    存儲過程中這樣引用:create procedure dbo.aa
    as 
    ...
    select  * from 數據庫.dbo.你的表
    ...
      

  2.   

    这句话的意思是,你要加个GO在你的存储过程的结束的地方,但是在存储过程内部是不能加的。你因该用一个变量 declare @myProcedure varchar(2000) 来存放你的存储过程,然后用EXEC来执行,看能不能成功!
      

  3.   

    如果在存儲過程不能使用GO,它以GO為結束符
      

  4.   

    这里我本来要做的存储过程(在当前数据库中):
    create procedure SKsp_CreateStoredProcedure 
      @StoredProcedureName varchar(20)  
    WITH ENCRYPTION
    AS 
    BEGIN
    /*
      --功能--用于根据 A104表中的脚本创建存储过程
    */
      DECLARE @SQLString NVARCHAR(4000) 
      declare @DestDatabase varchar(30) --目标数据库名
      declare @SysDatabase varchar(128) --当前系统数据库名,参数
    --------------------------------------
      select @SysDatabase = A00106 from a001 where A00101= '101' --当前系统数据库名
      begin transaction 
        select @DestDatabase = A00401 from A004 where A00405 = 1 order by A00401  --目标数据库
      ---------------------------------
        exec SKsp_DeleteStoredProcedure @StoredProcedureName 
        set @SQLString = 'use '+@DestDatabase+space(1) -- use Destinate database 
        select @SQLString = @SQLString + A10407 from A104 where A10401 = @StoredProcedureName --存储过程脚本  
        set @SQLString = @SQLString +space(1)+'use '+@SysDatabase  --use sysdatabase back    
        exec (@SQLString)  
      commit transaction 
    END
    这样还是不行.因为'use database'与'create procedure '不能放在同一个exec()批执行语句中,但若分开两个exec()里,实际还是在当前数据里创建的存储过程:(
    how can do??
      

  5.   

    use ENTDB
    GOCREATE procedure dbo.aaas select * from table  --table 是你ENTDB里的表
      

  6.   

    若在SQL中实在不行,我只有在外部应用程序里来执行了:(
      

  7.   

    只找到1种方法:update 系统表。。
      

  8.   

    楼上的,我是想要在ENTDB数据库中执行创建一个由SysDB里表A104(字段A10407)中的脚本,(其脚本可能就是:'creat procedurfe sp_aaa as select getdate()'),所动态生成的sp_aaa对象到EntDB里去.