只是想知道这两个存储过程声明之间有什么区别?
CREATE PROCEDURE [dbo].[sp_name]
@mainSorsTbl NVARCHAR(50),
@mainSorsClmn NVARCHAR(MAX),
@fromTable NVARCHAR(50),
@fromColumn NVARCHAR(MAX),
@toTable NVARCHAR(50),
@toColumn NVARCHAR(MAX)
AS
BEGIN
....
还有这个
ALTER PROCEDURE [dbo].[sp_CopyScDestDevByVendor]
(@var1 VARCHAR(15),
@var2 VARCHAR(8),
@var2 VARCHAR(20),
@var4 VARCHAR(8),
@var5 VARCHAR(3),
@INT = 0 OUTPUT)
AS
......
谢谢
答案 0 :(得分:0)
在第一个参数中没有括号:
CREATE procedure [dbo].[sp_name] @mainSorsTbl nvarchar(50), @mainSorsClmn nvarchar(max),@fromTable nvarchar(50), @fromColumn nvarchar(max), @toTable nvarchar(50), @toColumn nvarchar(max)
as
begin....
需要为:
CREATE procedure [dbo].[sp_name]
( @mainSorsTbl nvarchar(50), @mainSorsClmn nvarchar(max),@fromTable nvarchar(50), @fromColumn nvarchar(max), @toTable nvarchar(50), @toColumn nvarchar(max)
)
as
begin....
否则它将不起作用
ALTER仅在该过程已存在时才起作用。
使用较新版本的SQL的一种解决方法是使用
CREATE OR ALTER PROCEDURE sprocname