望指点:如何为别的数据库创建存储过程? use entdb gocreate procedure dbo.aaas ... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 存儲過程中這樣引用:create procedure dbo.aaas ...select * from 數據庫.dbo.你的表... 这句话的意思是,你要加个GO在你的存储过程的结束的地方,但是在存储过程内部是不能加的。你因该用一个变量 declare @myProcedure varchar(2000) 来存放你的存储过程,然后用EXEC来执行,看能不能成功! 如果在存儲過程不能使用GO,它以GO為結束符 这里我本来要做的存储过程(在当前数据库中):create procedure SKsp_CreateStoredProcedure @StoredProcedureName varchar(20) WITH ENCRYPTIONAS 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?? use ENTDBGOCREATE procedure dbo.aaas select * from table --table 是你ENTDB里的表 若在SQL中实在不行,我只有在外部应用程序里来执行了:( 只找到1种方法:update 系统表。。 楼上的,我是想要在ENTDB数据库中执行创建一个由SysDB里表A104(字段A10407)中的脚本,(其脚本可能就是:'creat procedurfe sp_aaa as select getdate()'),所动态生成的sp_aaa对象到EntDB里去. 求一触发器 [2008/07/05]sql code 分解字符串 急!!突然就打不开表!!!! SQL2005中不能输入汉字 关于视图identitycol的问题(2) C# + ASP.NET 做的网站完成了之后想大哭。 版主,超难问题,同一个存储过程,在数据库KFGL中6秒,在数据库KFWL中1:30秒?急迫解决!!!!!1 紧急求助:如何使程序和触发器处于一个事务中 SQL Server 2000初学者的问题! 奇怪的问题:SQL启动几秒后自动停止,什么原因? 你的小问题,我的大问题:关于触发器和存储过程?
as
...
select * from 數據庫.dbo.你的表
...
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??
GOCREATE procedure dbo.aaas select * from table --table 是你ENTDB里的表