CREATE PROCEDURE kq_chaxun
@kq_year varchar(50)='2006',
@kq_month varchar(50)='9',
@kq_carno int=0,
@kq_qx_id varchar(50)='NULL',
@kq_dept_in varchar(50)='NULL',
as
declare @str varchar(2000)
set @str= ............... --这里是根据传进来的变量给@str赋初值select * from ZLEmPloyee where + @str -- 就是这里啊,我怎么执行这个select啊?
GO
@kq_year varchar(50)='2006',
@kq_month varchar(50)='9',
@kq_carno int=0,
@kq_qx_id varchar(50)='NULL',
@kq_dept_in varchar(50)='NULL',
as
declare @str varchar(2000)
set @str= ............... --这里是根据传进来的变量给@str赋初值select * from ZLEmPloyee where + @str -- 就是这里啊,我怎么执行这个select啊?
GO
解决方案 »
- 帮忙看一下这个语句怎么修改
- 如何获得最新最有效的报价表?
- 请问现在只有期初数表和每次提货表的情况下如何算每次的结余数?
- 怎么样知道表company中id从1到5000之间有多少个id是没有的呢?
- 又是行转列啊。。。麻烦 。。。。哪位给转一下,谢谢
- 使用pl/sql语言编写部分学生教室管理系统的程序
- 邹大哥请指点啊~!防SQLserver2000数据注入的实用方法?
- 如何从多条记录中取出第一条来?(有很多个第一条,请看内容)
- ***求助!!一个关于事务(transaction)的设计问题!!急急急急急!!谢谢
- sql server里有没有数组类型数据的概念?
- SOS!!江湖救急!!如何在字段中去除空格和别的看不见的字符?
- 如何用 Insert Into 生成一个新表,如果表不存在,就自动创建它,如何做?
动态sql语句基本语法
1 :普通SQL语句可以用Exec执行 eg: Select * from tableName
Exec('select * from tableName')
Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类作为变量时,必须用动态SQL eg:
declare @fname varchar(20)
set @fname = 'FiledName'
Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
Exec('select ' + @fname + ' from tableName') -- 请注意 加号前后的 单引号的边上加空格 当然将字符串改成变量的形式也可
declare @fname varchar(20)
set @fname = 'FiledName' --设置字段名 declare @s varchar(1000)
set @s = 'select ' + @fname + ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句会报错 declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000)
set @s = 'select ' + @fname + ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句正确 3. 输出参数
declare @num int,
@sqls nvarchar(4000)
set @sqls='select count(*) from tableName'
exec(@sqls)
--如何将exec执行结果放入变量中? declare @num int,
@sqls nvarchar(4000)
set @sqls='select @a=count(*) from tableName '
exec sp_executesql @sqls,N'@a int output',@num output
select @num