BEGIN...END ブロックの外でストアド プロシージャを呼び出す場合、EXEC または EXECUTE コマンドを使用する必要はありません。次の作品:
SP_RENAME '[dbo].[TableName].[old_column]', 'new_column', 'COLUMN'
ただし、この行を BEGIN...END ブロック内に移動すると、EXEC または EXECUTE コマンドを使用しない限り、synatx エラーがスローされます。
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
何か理由は?