我需要将我生成的动态查询插入并保存到sql-server数据库表中,但是在没有任何条件的情况下可以正常工作,但在有条件的情况下却给我错误,请任何人都可以帮助我。
INSERT INTO [dbo].[tablename] ([DataQuery],[DataQueryName],[EditedDate],[LastUsedDate],[UserId])
VALUES ('SELECT * from tablename WHERE tablename.UID < '10' AND tablename.status = 'Active' ORDER BY Id'
,'aa',GETDATE(),GETDATE(),'1541')
答案 0 :(得分:2)
您需要在SQL语句中使用单引号将单引号转义:
INSERT INTO [dbo].[tablename] ([DataQuery],[DataQueryName],[EditedDate],[LastUsedDate],[UserId])
VALUES ('SELECT * from tablename WHERE tablename.UID < ''10'' AND tablename.status = ''Active'' ORDER BY Id'
,'aa',GETDATE(),GETDATE(),'1541')
答案 1 :(得分:0)
可能是您的WHERE子句中的单引号需要转义。尝试用\'替换查询中的单引号以使引号转义。示例:
INSERT INTO [dbo].[tablename]
([DataQuery],[DataQueryName],[EditedDate],[LastUsedDate],[UserId])
VALUES ('SELECT * from tablename WHERE tablename.UID < \'10\' AND tablename.status = \'Active\' ORDER BY Id'
,'aa',GETDATE(),GETDATE(),'1541')