所以我一直在這個工作幾天,也許我一直在看它太久了。使用動態SQL創建表格
我想要做的是創建一個程序,將基於我的SELECT查詢創建另一個表的原因是主表是超過17行長,功率在希望這個信息被破壞關於三數字ID。這個ID號碼是連續的,但我確實有一張表格,列出了所有這些表格。
我的問題有三個(至少我希望如此)部分。
創建動態SQL字符串,使表和拉正確的信息(DONE)
DECLARE @SQL NVARCHAR(MAX),
@Class NVARCHAR(3)
SET @Class ='103'
SET @SQL = 'SELECT ID.PartIntchNbr, ID.MfrCd, ID.OemId, ID.Application, ID.Interchange ,ID.HollanderPrice INTO Hldr.Hollander'[email protected]+
' FROM [2014_EBook].dbo.HollanderInformation AS ID
WHERE SUBSTRING(ID.Interchange, 1, 3) = '[email protected];
EXEC (@SQL)
但是這個工作恐怕有可能是做一個更安全/清潔的方式。
我嘗試從中創建一個過程時遇到問題,所以我可以傳入@Class的變量。
CREATE PROCEDURE Hldr.HldrBreakDown
@Class NVARCHAR(3)
AS
DECLARE
@SQL NVARCHAR(MAX)
SET @SQL =
'SELECT ID.PartIntchNbr, ID.MfrCd, ID.OemId, ID.Application, ID.Interchange ,ID.HollanderPrice INTO Hldr.Hollander'[email protected]+
' FROM [2014_EBook].dbo.HollanderInformation AS ID
WHERE SUBSTRING(ID.Interchange, 1, 3) = '[email protected]
GO
我沒有收到錯誤,一切都正常運行,但是當我打電話的程序,輸入變量表不發 - 我承認,我努力學習,其中很大一部分是通過網上資源與試錯
三 - 一旦這是所有做的計劃是通宵達旦
什麼我失蹤的使用表值參數輸入我的變量,讓SQL流失,什麼是方法我可以有更清潔和安全的代碼?
感謝
爲什麼要爲每個班級創建一張桌子?你知道有很多方法可以使大表更加高效,而不必將它們分解成數百個無法管理的小表,對吧?另外,爲什麼標記爲MySQL和SQL Server? – 2014-09-30 00:00:13
'表超過17行'什麼?你的意思是行嗎? 17行非常小。 – Brandon 2014-09-30 00:24:06
問你的實際問題不是你的嘗試解決方案。 http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem – Horaciux 2014-09-30 00:25:36