所以我一直在这个工作几天,也许我一直在看它太久了。使用动态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