例如:
DECLARE @sql char(100)
SET @sql='PRINT "欢迎您!" '
EXEC (@sql)
这时试过执行到,但也试过失败,作为要在字符中显示单引号,除了用双引号代替单引号之外,还必须设置一样东西:
SET QUOTED_IDENTIFIER OFF
如果将它设置为 ON 原来是不行的!我怀疑如果设置为ON,下面的语句中,双引号括住的语句都认为是列名的。不知道是不是这样,有待验证!
不过,一定要设置OFF,才能正确运行!务必记住!
补充:当修改了表的结构时,系统自动还原语句 SET QUOTED_IDENTIFIER ON,此时如果在有动态生成表的时候,并且表带有触发器一起动态生成的时候,会由于SET QUOTED_IDENTIFIER ON,会无法动态生成触发器的,而表就可以生成。还必须要人为地写回 SET QUOTED_IDENTIFIER OFF,才能实现表与触发器一起动态生成。