2
在BEGIN ... END塊之外調用存儲過程時,我不需要使用EXEC或EXECUTE命令;以下工作:TSQL:在BEGIN ... END塊內執行存儲過程
SP_RENAME '[dbo].[TableName].[old_column]', 'new_column', 'COLUMN'
然而,當我移動這條線BEGIN ... END塊內,它會除非我使用EXEC拋出synatx錯誤或EXECUTE命令:
IF EXISTS(SELECT * FROM sys.columns WHERE Name = N'old_column' AND Object_ID = Object_ID(N'TableName'))
BEGIN
EXEC SP_RENAME '[dbo].[TableName].[old_column]', 'new_column', 'COLUMN'
END
任何原因?
我想你只需要一個exec語句,如果語句是批處理中的第一個語句...例如... GO SP_REName ...;當它在循環中時,它不是第一個語句,因此必須執行 – 2012-08-14 22:34:37