日期:2014-05-19  浏览次数:20551 次

表名为变量的插入操作
由于插入的数据库是有用户输入的数据决定,如有三个数据库DB1,DB2,DB3,用户输入1就对DB1进行插入操作,依次类推。知道要用动态SQL但具体怎么做还不清楚。请教!

------解决方案--------------------
create proc spInsertTest @tableChoice int,其它参数...
as
declare @sql varchar(8000),@TableName sysname
set @sql = ' '
set @TableName = ' '
----根据参数确定数据库名称
set @TableName =
CASE @tableChoice
WHEN 1 THEN 'table1 '
WHEN 2 THEN 'table2 '
WHEN 3 THEN 'table3 '
END
if @sql <> ' '
begin
----构建插入新行的SQL字符串
set @sql = 'Insert ' + @TableName + '(columnList) values( ' + 值列表 + ') '
----执行SQL字符串
EXEC(@sql)
end
GO