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