【发布时间】:2014-12-31 04:04:54
【问题描述】:
我想将我的动态 SQL 变量声明为一个表。 基本上我有一个这样的“假设”表
City BranchID Name
London 101 London Branch
Munich 102 Munich Branch
我已经试过了:
DECLARE @Cit varchar(75)
SET @Lob = 'London'
SET @ID= 'SELECT BranchID FROM dbo.assumptions WHERE city = @city'
SET @Name= 'SELECT Name FROM dbo.assumptions WHERE city= @city'
EXECUTE sp_executesql @ID, N'@city nvarchar(75)', @city= @city
EXECUTE sp_executesql @Name_Net, N'@city nvarchar(75)', @city= @city
这给了我正确的结果 101和伦敦分店
问题是我想稍后使用这些变量,例如
SELECT * From Sales where BranchID = @ID
我知道该怎么做。但是现在这给了我
SELECT * From Sales where BranchID = SELECT BranchID FROM dbo.assumptions WHERE city = 'London'
这当然行不通。我需要@ID 才能得到“101”
有什么想法吗?
【问题讨论】:
标签: sql sql-server-2008 dynamic declare