重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你可以建立一个公用的数据库,里面就一张表,是U8历次的数据库名,然后用一个公用的方法去返回最新的数据库句,这后你的视图和存储过程就用这个方法来返回数据库名进行更新就行了。
成都创新互联长期为数千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为乌达企业提供专业的网站设计、网站建设,乌达网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。
参数定义
单个参数
1 CREATE PROCEDURE HelloWorld1
2 @UserName VARCHAR(10)
3 AS
4 BEGIN
5 PRINT 'Hello' + @UserName + '!';
6 END;
7 go
1 DECLARE @RC int;
2 EXECUTE @RC = HelloWorld1 'Edward' ;
3 PRINT @RC;
4 go
HelloEdward!
IN、OUT、IN OUT
注:
SQL Server 的 OUTPUT 需要写在变量数据类型后面。
SQL Server 没有 IN OUT 关键字
OUTPUT 已经相当于 IN OUT 了。
1 CREATE PROCEDURE HelloWorld2
2 @UserName VARCHAR(10),
3 @OutVal VARCHAR(10) OUTPUT,
4 @InoutVal VARCHAR(10) OUTPUT
5 AS
6 BEGIN
7 PRINT 'Hello ' + @UserName + @InoutVal + '!';
8 SET @OutVal = 'A';
9 SET @InoutVal = 'B';
10 END;
11 go
1
2 DECLARE @RC int, @OutVal VARCHAR(10), @InoutVal VARCHAR(10);
3 BEGIN
4 SET @InoutVal = '~Hi~';
5 EXECUTE @RC = HelloWorld2 'Edward', @OutVal OUTPUT, @InoutVal OUTPUT;
6 PRINT @RC;
7 PRINT '@OutVal=' + @OutVal;
8 PRINT '@InoutVal=' + @InoutVal;
9 END
10 go
Hello Edward~Hi~!
@OutVal=A
@InoutVal=B
参数的默认值
1 CREATE PROCEDURE HelloWorld3
2 @UserName VARCHAR(10),
3 @Val1 VARCHAR(20) = ' Good Moning,',
4 @Val2 VARCHAR(20) = ' Nice to Meet you'
5 AS
6 BEGIN
7 PRINT 'Hello ' + @UserName + @Val1 + @Val2 + '!';
8 END;
9 go
1
2 DECLARE @RC int;
3 BEGIN
4 EXECUTE @RC = HelloWorld3 'Edward';
5 PRINT @RC;
6 EXECUTE @RC = HelloWorld3 'Edward', ' Good Night,';
7 PRINT @RC;
8 EXECUTE @RC = HelloWorld3 'Edward', ' Good Night,', ' Bye';
9 PRINT @RC;
10 END
11 go
Hello Edward Good Moning, Nice to Meet you!
Hello Edward Good Night, Nice to Meet you!
Hello Edward Good Night, Bye!
指定参数名称调用
此部分使用 “参数默认值”那一小节的存储过程。
用于说明当最后2个参数是有默认的时候,如何跳过中间那个。
1 DECLARE @RC int;
2 BEGIN
3 EXECUTE @RC = HelloWorld3 'Edward';
4 PRINT @RC;
5 EXECUTE @RC = HelloWorld3 'Edward', @Val1=' Good Night,';
6 PRINT @RC;
7 EXECUTE @RC = HelloWorld3 'Edward', @Val1=' Good Night,', @Val2=' Bye';
8 PRINT @RC;
9 EXECUTE @RC = HelloWorld3 'Edward', @Val2=' HeiHei ';
10 PRINT @RC;
11 END
12 go
Hello Edward Good Moning, Nice to Meet you!
Hello Edward Good Night, Nice to Meet you!
Hello Edward Good Night, Bye!
Hello Edward Good Moning, HeiHei !
请问垮服务器没?如果没在一个服务器上,就使用链接服务器,实现跨库查询比较容易,如果在同一个服务器上,实现跨库查询,就使用select * from dbname.dbo.table1