如何同时声明@state,@name二个变量?
时间:2011-11-19
来源:互联网
上边这句sql如何同时声明@state,@name二个变量呢?
作者: postfix2 发布时间: 2011-11-19
作者: fredrickhu 发布时间: 2011-11-19
roy_88
(中國風)
等 级:
3
3
更多勋章
===============================
再次谢谢中国风,方法5可行
--方法5:输入输出
--用sp_executesql
declare @i int,@con int,@s nvarchar(1000)
set @i=5
select @s='select @con=count(1) from sysobjects where ID>@i'
exec sp_executesql @s,N'@con int output,@i int',@con output ,@i
select @con
作者: postfix2 发布时间: 2011-11-19
作者: postfix2 发布时间: 2011-11-19
没见回答就解决了?
作者: xiaolinyouni 发布时间: 2011-11-19
请中国风进来接分哈,谢谢!
那个是输出参数?原来是这个意思。
作者: fredrickhu 发布时间: 2011-11-19
输入或输出参数 (1)输入参数: declare @QueryString nvarchar(1000) --动态查询语句变量(注:必须为ntext或nchar哐nvarchar类型,不能是varchar类型) declare @paramstring nvarchar(200) --设置动态语句中的参数的字符串(注:必须为ntext或nchar哐nvarchar类型,不能是varchar类型) declare @input_id int--定义需传入动态语句的参数的值 set @QueryString='select * from tablename where id=@id' --id为字段名,@id为要传入的参数 set @paramstring='@id int' --设置动态语句中参数的定义的字符串 set @input_id =1 --设置需传入动态语句的参数的值为1 exec sp_executesql @querystring,@paramstring,@id=@input_id 若有多个参数: declare @QueryString nvarchar(1000) --动态查询语句变量(注:必须为ntext或nchar哐nvarchar类型,不能是varchar类型) declare @paramstring nvarchar(200) --设置动态语句中的参数的字符串(注:必须为ntext或nchar哐nvarchar类型,不能是varchar类型) declare @input_id int--定义需传入动态语句的参数的值,参数1 declare @input_name varchar(20)--定义需传入动态语句的参数的值,参数2 set @QueryString='select * from tablename where id=@id and name=@name' --id与name为字段名,@id与@name为要传入的参数 set @paramstring='@id int,@name varchar(20)' --设置动态语句中参数的定义的字符串,多个参数用","隔开 set @input_id =1 --设置需传入动态语句的参数的值为1 set @input_name='张三' --设置需传入动态语句的参数的值为"张三" exec sp_executesql @querystring,@paramstring,@id=@input_id,@name=@input_name --请注意参数的顺序 (2)输出参数 declare @num int, @sqls nvarchar(4000) set @sqls='select count(*) from tableName' exec(@sqls) --如何将exec执行结果放入变量中? declare @QueryString nvarchar(1000) --动态查询语名变量(注:必须为ntext或nchar哐nvarchar类型,不能是varchar类型) declare @paramstring nvarchar(200) --设置动态语句中的参数的字符串(注:必须为ntext或nchar哐nvarchar类型,不能是varchar类型) declare @output_result int--查询结果赋给@output_result set @QueryString='select @totalcount=count(*) from tablename' --@totalcount 为输出结果参数 set @paramstring='@totalcount int output' --设置动态语句中参数的定义的字符串,多个参数用","隔开 exec sp_executesql @querystring,@paramstring,@totalcount=@output_result output select @output_result 当然,输入与输出参数可以一起使用,大家可以自己去试一试。 另外,动态语句查询的结果集要输出的话,我只想到以下用临时表的方法,不知各位有没有更好的方法. IF object_id('[tempdb].[dbo].#tmp') IS NOT NULL --判断临时表#tmp是否存在,存在则删除 drop table #tmp select * into #tmp from tablename where 1=2 --创建临时表#tmp,其结构与tablename相同 declare @QueryString nvarchar(1000) --动态查询语名变量(注:必须为ntext或nchar哐nvarchar类型,不能是varchar类型) set @QueryString='select * from tablename ' insert into #tmp(field1,field2,...) exec(@querystirng)
作者: fredrickhu 发布时间: 2011-11-19
作者: roy_88 发布时间: 2011-11-19
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28