【发布时间】:2019-08-22 18:50:32
【问题描述】:
我正在尝试为视图创建一个存储过程,如下所示,但它抛出了一个错误
'N' 附近的语法不正确
如果我删除了引用,那么它会起作用。请建议我如何将值 N 放在引号中。
ALTER PROCEDURE [dbo].[SP_VIEW]
AS
BEGIN
EXECUTE('
CREATE VIEW [dbo].[SP_VIEW]
AS
SELECT *
FROM [dbo].[ACTIVITY]
WHERE IND = 'N'')
END
【问题讨论】:
-
您需要将单引号加倍,因为它们在字符串中。我认为滥用引号是一个错字,并投票结束此类问题。
-
旁注:您应该不为您的存储过程使用
sp_前缀。微软有reserved that prefix for its own use (see Naming Stored Procedures),你确实会在未来某个时候冒着名称冲突的风险。 It's also bad for your stored procedure performance。最好只是简单地避免sp_并使用其他东西作为前缀 - 或者根本不使用前缀!
标签: sql sql-server