读书人

SQL动态实施存储过程

发布时间: 2013-03-21 10:08:17 作者: rapoo

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  

读书人网 >SQL Server

热点推荐