sqlserver 靜態創立暫時表的語句分享。本站提示廣大學習愛好者:(sqlserver 靜態創立暫時表的語句分享)文章只能為提供參考,不一定能成為您想要的結果。以下是sqlserver 靜態創立暫時表的語句分享正文
是以籌劃先把數據轉拔出一個暫時表,再對暫時表的數據停止剖析。
成績點是若何靜態創立暫時表。本來Insus.NET應用上面代碼完成:
DECLARE @s NVARCHAR(MAX) = '
IF OBJECT_ID(''[dbo].[#Tb]'') IS NOT NULL
DROP TABLE [dbo].[#Tb]
CREATE TABLE [dbo].[#Tb]
(
[xxx] INT,
[xxx] NVARCHAR(50),
'+ [dbo].[Column]() + '
)'
EXECUTE(@s)
下面代碼中,有一個函數[dbo].[Column]() 是獲得一系列靜態字段。
其實,下面的代碼一點成績也沒有,是能准確靜態創立一個暫時表,然則接上去代碼,我們沒法再應用這個暫時表[dbo].[#Tb] ,由於run第10行代碼EXECUTE(@s)這舉措以後,過程曾經停止了。如許說法,靜態創立出來的暫時表,也沒有甚麼意義了。
為懂得決這個成績,Insus.NET想到了一個辦法,算是能處理這個成績。既能靜態創立,又能在創立以後,能持續應用這個暫時表。
IF OBJECT_ID('[dbo].[#Tb]') IS NOT NULL
DROP TABLE [dbo].[#Tb]
CREATE TABLE [dbo].[#Tb]
(
[xxx] INT,
[xxx] NVARCHAR(50)
)
DECLARE @tb NVARCHAR(MAX) = 'ALTER TABLE [dbo].[#Tb] ADD ' + [dbo].[Column]()
EXECUTE(@tb)
只需仔細看了一下,就是可以曉得,可以先按正常創立這個暫時表,再靜態修正這個暫時表的字段。如許做以後,法式run完第10行代碼以後,就可以再持續應用這個暫時表,如:
SELECT * FROM [dbo].[#Tb]