189 8069 5689

sqlserver并且,sql sqlserver

SQLServer跨数据库执行存储,并且这个存储带有表类型参数,需要怎么声明传入?

参数定义

成都创新互联专业为企业提供东乃网站建设、东乃做网站、东乃网站设计、东乃网站制作等企业网站建设、网页设计与制作、东乃企业网站模板建站服务,十年东乃做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

单个参数

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 !

怎么将oracle里面的数据导入到sqlserver中,并且每天更新

1,先imp到oracle,再从oracle转换在sqlserver

还有一种方法,如果dmp文件比较小就可以试试,你可以把dmp文件打开,里面是一样文本,可以直接把需要的文本(其实是一些生成表和数据的SQL,还有一些是与ORACLE数据库相关的一些数据库属性,这里不用),放到sqlserver的查询管理器中,做一些相关的语法改动后执行,就可以将数据导入到SQLSERVER中

2,先用oracle的imp命令或者OEM讲DMP文件导入到ORACLE库.

请教高手sqlserver用代码如何创建用户并且加入sa同等的权限

1. 首先在 SQL Server 服务器级别,创建登陆帐户(create login)

create login dba with password='sqlstudy', default_database=master 登陆帐户名为:“dba”,登陆密码:“sqlstudy”,默认连接到的数据库:“mydb”。这时候,dba 帐户就可以连接到 SQL Server 服务器上了。但是此时还不能访问数据库中的对象(严格的说,此时 dba 帐户默认是 guest 数据库用户身份,可以访问 guest 能够访问的数据库对象)。

要使 dba 帐户能够在 mydb 数据库中访问自己需要的对象,需要在数据库 mydb 中建立一个“数据库用户”,赋予这个“数据库用户” 某些访问权限,并且把登陆帐户“dba” 和这个“数据库用户” 映射起来。习惯上,“数据库用户” 的名字和 “登陆帐户”的名字相同,即:“dba”。创建“数据库用户”和建立映射关系只需要一步即可完成:

2. 创建数据库用户(create user):

create user dba for login dba with default_schema=dbo

并指定数据库用户“dba” 的默认 schema 是“dbo”。这意味着用户“dba” 在执行“select * from t”,实际上执行的是 “select * from dbo.t”。

3. 通过加入数据库角色,赋予数据库用户“dba”权限:

exec sp_addrolemember 'db_owner', 'dba'

此时,dba 就可以全权管理数据库 mydb 中的对象了。

如果想让 SQL Server 登陆帐户“dba”访问多个数据库,比如 mydb2。可以让 sa 执行下面的语句:

use mydb2

go

create user dba for login dba with default_schema=dbo

go

exec sp_addrolemember 'db_owner', 'dba'

go

此时,dba 就可以有两个数据库 mydb, mydb2 的管理权限了!

4. 禁用、启用登陆帐户:

alter login dba disable

alter login dba enable

5. 登陆帐户改名:

alter login dba with name=dba_tom

提示:在 SQL Server 2005 中也可以给 sa 改名。 《SQL Server 2005 安全性增强:给超级用户 sa 改名》

6. 登陆帐户改密码:

alter login dba with password='sqlstudy.com'

7. 数据库用户改名:

alter user dba with name=dba_tom

8. 更改数据库用户 defult_schema:

alter user dba with default_schema=sales

9. 删除数据库用户:

drop user dba

10. 删除 SQL Server登陆帐户:

drop login dba

sqlserver怎么实现同一个表中多个count查询并且分组并且统计总数

可以有两种解决方法,

所需工具:SQL

查询两个count的方法1:

SELECT paperName , COUNT (1) AS 总题数 , sum (CASE WHEN statu = 1 THEN 1 ELSE 0 END) AS 审核题数FROM questionGROUP BY paperNme

查询两个count的方法2:

select s.总题数, s.审核题数, s.paperNamefrom (select COUNT(1) as 总题数, case when status = 1 then count(1) else 0 end as 审核题数, paperNamefrom question--where papername in (select distinct paperName from question), 这个条件可以不要了group by paperNme, stauts -- status也要作为分组字段,因为在case中有使用) s

sqlserver语法 " ||" 和"&&"什么意思,2者有啥区别? 代码举例。。

sqlserver 中 没有 || 和 的吧。

但是java,C等编程语言中有他,||表示 或, 表示 与。

对应sqlserver sql语句中的 or 和 and。

or 表示有一种情况真,表达式就为真,比如if(1==2||2==2){...},这时候if表达式就为真。if(1==2||1==3){...}这时候if表达式直为假。

and表示两种情况都为真,表达式为真,比如if(1==12==2){},这时候if表达式为真,其他情况为假。


分享名称:sqlserver并且,sql sqlserver
文章转载:http://cdxtjz.cn/article/dsgsice.html

其他资讯