EXEC内的撇号

时间:2019-04-03 10:01:40

标签: sql sql-server

我需要运行此脚本

UIManagedDocument

在SQL中,但是里面的使徒使错误。甚至像在Java中一样在'之前添加\使其使其解释为char而不是特殊值,但无法解决

2 个答案:

答案 0 :(得分:2)

在IX_IdDimx周围加上另一个撇号

EXEC('      
BEGIN TRAN
if exists ( select name from sys.indexes where name=''IX_IdDimX'')
    begin
    DROP INDEX [IX_IdDimX] ON [dbo].[FacX]
    END
COMMIT ')

答案 1 :(得分:0)

您可以将字符串中的单引号引起来的双引号,也可以使用以下示例中的参数化查询。

EXECUTE sp_executesql N'
    SET XACT_ABORT ON;
    BEGIN TRAN;
    IF EXISTS ( SELECT name FROM sys.indexes WHERE name = @IndexName)
    BEGIN
        DROP INDEX [IX_IdDimX] ON [dbo].[FacX];
    END;
    COMMIT;'
, N'@IndexName sysname'
, @IndexName = 'IX_IdDimX';