一:T-sql中的动态sql实现方式
sqlserver2000中的做法是使用系统存储过程sp_executesql
sp_executesql的语法格式如下:sp_executesql N'select @count=count(*) from emp_test',N'@count int output',output_number output
如上所示,想得到了select中的@count局部变量的值就搞定了,同时请注意如下两点,1:定义的参数必须是Unicode编码的字符串。
字符串中输出的参数必须在第二个参数中写出。
在2005中T-sql对动态sql进行了增强,除了可以使用sp_executesql系统存储过程外,还可以使用exec语句
语法格式:
exec('varchar|char|nchar|nvarchar|text|ntext literal constant')
举例:
exec('create table test(id int not null,username varchar(40))')---定义一个表
select * from test --查询刚动态sql创建的表
提示:Tsql规定DDL语句必须是批处理的第一行,
sqlserver2000中的做法是使用系统存储过程sp_executesql
sp_executesql的语法格式如下:sp_executesql N'select @count=count(*) from emp_test',N'@count int output',output_number output
如上所示,想得到了select中的@count局部变量的值就搞定了,同时请注意如下两点,1:定义的参数必须是Unicode编码的字符串。
字符串中输出的参数必须在第二个参数中写出。
在2005中T-sql对动态sql进行了增强,除了可以使用sp_executesql系统存储过程外,还可以使用exec语句
语法格式:
exec('varchar|char|nchar|nvarchar|text|ntext literal constant')
举例:
exec('create table test(id int not null,username varchar(40))')---定义一个表
select * from test --查询刚动态sql创建的表
提示:Tsql规定DDL语句必须是批处理的第一行,