直接利用變數Create Table,這種寫法是不行的因為@TALBE_NAME本身也是欄位不能直接用在CREATE TABLE語法上。
DECLARE @TALBE_NAME NVARCHAR(10)
SET @TALBE_NAME = 'T'+ (SELECT CONVERT(VARCHAR(8),GETDATE(),112))
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME=@TALBE_NAME) BEGIN
CREATE TABLE @TALBE_NAME(
EMPLOYEE_NO NVARCHAR(20)
)
END
直接利用變數把語法用字串串起來,再利用EXECUTE執行Create Table,這種寫法是可以達到目的,但是可能因為欄位眾多導致畫面凌亂需要做好排版,方便後續維護人員閱讀。
DECLARE @TALBE_NAME NVARCHAR(10)
SET @TALBE_NAME = 'T'+ (SELECT CONVERT(VARCHAR(8),GETDATE(),112))
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME=@TALBE_NAME) BEGIN
EXECUTE ('CREATE TABLE '+@TALBE_NAME+' ( EMPLOYEE_NO NVARCHAR(20))')
END
沒有留言:
張貼留言