首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL动态实施存储过程

2013-03-21 
SQL动态执行存储过程DECLARE @tableName NVARCHAR(20)DECLARE @columns NVARCHAR(200)DECLARE @sql NVARCH

SQL动态执行存储过程

    DECLARE @tableName NVARCHAR(20)      DECLARE @columns NVARCHAR(200)      DECLARE @sql NVARCHAR(500)--当使用sp_executesql执行时不能是VARCHAR(500)      SET @tableName='Products'      SET @columns='ProductName,UnitPrice'      SET @sql=N'SELECT '+@columns+' FROM '+@tableName      EXEC (@sql)                                                         --正确!!!      EXEC ('SELECT '+@columns+' FROM '+@tableName)                       --正确!!!      EXEC sys.sp_executesql @sql                                         --正确!!!但是如果@sql定义成varchar类型此句就会出错      EXEC sys.sp_executesql N'SELECT ProductName,UnitPrice FROM Products'--正确!!!直接执行语句,语句前面必须加“N”      EXEC sys.sp_executesql N'SELECT '+@columns+' FROM '+@tableName      --错误!!!不能执行sql拼接,即使前面加N  

热点排行