直接利用變數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
沒有留言:
張貼留言