【发布时间】:2018-02-16 12:52:02
【问题描述】:
这是我的动态 sql。
DECLARE @SQL varchar(MAX)
DECLARE @Data varchar(MAX)
SET @Data='ALFKI'' OR ContactName=''Ana Trujillo'''
SET @SQL='select * from Customers Where CustomerID='''+@Data+''
print @SQL
exec (@SQL)
当我打印然后我得到这个sql select * from Customers Where CustomerID='ALFKI'这个sql是正确的但是当我用exec @SQL替换print @SQL并再次执行动态sql然后我得到错误调用
消息 2812,级别 16,状态 62,第 8 行找不到存储过程 '从 CustomerID='ALFKI' 的客户中选择 *'。
不清楚我在哪里犯了错误。请给我一些提示,上面的动态 sql 中的问题在哪里。谢谢
【问题讨论】:
-
为什么这么简单的查询需要动态sql?