0

当我这样做时

declare @cmd nvarchar(50)
set @cmd ='SELECT category_id FROM tbl_BHMCategoryMaster '
exec(@cmd)

查询正确执行。

但是当我这样做时

declare @cmd nvarchar(50)
set @cmd ='SELECT [category_id],[category_name],[Basic],[Dimension],[In_Out],[ProfileHand],[Glass],[Hinge],[Edgeband]  FROM [tbl_BHMCategoryMaster] ' 
exec(@cmd)

我收到此错误,但我不知道我做错了什么

Msg 105, Level 15, State 1, Line 1
字符串'Dime'后的非闭合引号。
消息 102,级别 15,状态 1,第 1 行
'Dime' 附近的语法不正确。

但是当我再次尝试这个时

 exec('SELECT [category_id],[category_name],[Basic],[Dimension],[In_Out],[ProfileHand],[Glass],[Hinge],[Edgeband]  FROM [tbl_BHMCategoryMaster]')

它工作正常。

可能有很多替代方案,但我想详细了解问题,以便下次我不会面对它。如果有人可以放一些光,那将有很大帮助。谢谢 :)

4

1 回答 1

2

你还没有宣布@cmd足够长。尝试这个:

declare @cmd nvarchar(max);
set @cmd = N'SELECT [category_id],[category_name],[Basic],[Dimension],[In_Out],[ProfileHand],[Glass],[Hinge],[Edgeband]  FROM [tbl_BHMCategoryMaster] ' ;
exec(@cmd);
于 2013-09-15T14:11:25.030 回答