我设法将SQL中的列重命名为表名和目标列名,并用点分隔。我用这句话:
EXEC sp_rename 'Booking.MasterBookingID', 'Booking.BookingID'
这很有效,问题是它本应该是:
EXEC sp_rename 'Booking.MasterBookingID', 'BookingID'
因此,我的列不是名为BookingID
,而是名为Booking.BookingID
。所以我想,好吧,我只需要重新命名它。我走了:
EXEC sp_rename 'Booking.Booking.BookingID', 'BookingID'
但这不起作用:
> No item by the name of 'Booking.Booking.BookingID' could be found in
> the current database 'BookingSystemTest', given that @itemtype was
> input as '(null)'.
所以我尝试了其他几种方法:
EXEC sp_RENAME 'Booking.BookingID', 'BookingID'
与以前相同的错误。
EXEC sp_RENAME 'Booking.BookingID', 'BookingID', 'COLUMN'
EXEC sp_RENAME 'Booking.Booking.BookingID', 'BookingID', 'COLUMN'
都会出错:
> [Error Code: 15248, SQL State: S1000] Either the parameter @objname
> is ambiguous or the claimed @objtype (COLUMN) is wrong.
那么,既然我已经失误了,那么我怎样才能成功重命名我的专栏,并将其重命名为SQL显然不太喜欢的内容?
答案 0 :(得分:3)
您需要添加[]来表示表n列名的分离。
EXEC sp_RENAME 'Booking.[Booking.BookingID]', 'BookingID'