求一条简单的SQL语句。 就是怎么在INSERT 里面 加入参数的问题,列名是参数类似与下面的:DECLARE @A VARCHAR(50)SET @A='name' --name列INSERT t1(@A) values ('g')谢谢各位。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DECLARE @A VARCHAR(50)SET @A='name' --name列exec ('INSERT t1('+@A+') values (''g'')') DECLARE @A VARCHAR(50)DECLARE @SQL VARCHAR(50)SET @A='name' --name列set @sql = 'INSERT into t1(' + @A + ') values (''g'')exec @sql DECLARE @A VARCHAR(50),@sql varchar(8000)SET @A='name' --name列set @sql='INSERT t1('+@A+') values (''g'')'exec(@sql) 谢谢楼上,对动态SQL不是太熟悉。各位有什么好的文章学习没啊 http://community.csdn.net/Expert/topic/5451/5451726.xml?temp=.7316095 1 、普通SQL语句可以用Exec执行eg: Select * from tableName Exec('select * from tableName') Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N 2、字段名,表名,数据库名之类作为变量时,必须用动态SQLeg: 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 此外,如果想要在SQL语句 字符串中使用 单引号 '' 可以 使用 ''''转http://bbs.tech.ccidnet.com/ sql中当往一个表中添加数据时怎么让一列自动生成如a00000001格式的递增ID 求一分页存储过程 SQLServer存储过程执行遭遇的问题 一个查询问题,请大大帮忙 有使用过BULK INSERT的高手吗? 求助一个Sql问题... sql请教 help--关于语句注释 如何在两个数据库服务器直接copy数据? 在线等~~ 如何不安装SQL Server2000企业管理器就可以使用DTS功能 关于SQL Server Desktop Engine的用户和密码问题 [谢谢]字段x在数据库中的值是2.36669988,我只想取小数前三位,怎么写?
SET @A='name' --name列
exec ('INSERT t1('+@A+') values (''g'')')
DECLARE @SQL VARCHAR(50)
SET @A='name' --name列
set @sql = 'INSERT into t1(' + @A + ') values (''g'')
exec @sql
SET @A='name' --name列set @sql='INSERT t1('+@A+') values (''g'')'
exec(@sql)
各位有什么好的文章学习没啊
Exec('select * from tableName')
Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N 2、字段名,表名,数据库名之类作为变量时,必须用动态SQLeg:
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 此外,如果想要在SQL语句 字符串中使用 单引号 '' 可以 使用 ''''转http://bbs.tech.ccidnet.com/