动态sql语法:CREATE PROCEDURE testpro @mywhere nvarchar(50) AS declare @sql varchar(2000) --动态sql字符串 set @sql='select aa,bb from test where aa=' + @mywhere exec (@sql) --执行动态sql语句 go ------------------------------------- 然后在程序或查询分析器执行该存储过程并给@mywhere参数赋值,就可以得到 test表中aa字段值为你复制的记录了
--创建调试环境 if object_id('tbl_t') is null print 'not exists' else drop table tbl_t create table tbl_t ( aa varchar(20), bb varchar(20) )insert into tbl_t values('a1','b1') insert into tbl_t values('a2','b2') insert into tbl_t values('a3','b3') insert into tbl_t values('a4','b4') select * from tbl_tcreate PROCEDURE testpro @mywhere nvarchar(50) as exec('select aa,bb from tbl_t where '+ @mywhere ) gotestpro ' aa=''a1'''--删除表 drop table tbl_t --结果: /* aa bb -------------------- -------------------- a1 b1(所影响的行数为 1 行) */
@mywhere nvarchar(50)
AS
declare @sql varchar(2000) --动态sql字符串
set @sql='select aa,bb from test where aa=' + @mywhere
exec (@sql) --执行动态sql语句
go
-------------------------------------
然后在程序或查询分析器执行该存储过程并给@mywhere参数赋值,就可以得到
test表中aa字段值为你复制的记录了
if object_id('tbl_t') is null
print 'not exists'
else
drop table tbl_t
create table tbl_t
(
aa varchar(20),
bb varchar(20)
)insert into tbl_t values('a1','b1')
insert into tbl_t values('a2','b2')
insert into tbl_t values('a3','b3')
insert into tbl_t values('a4','b4')
select * from tbl_tcreate PROCEDURE testpro
@mywhere nvarchar(50)
as
exec('select aa,bb from tbl_t where '+ @mywhere )
gotestpro ' aa=''a1'''--删除表
drop table tbl_t
--结果:
/*
aa bb
-------------------- --------------------
a1 b1(所影响的行数为 1 行)
*/