【发布时间】:2015-04-18 06:41:42
【问题描述】:
我可以做到这一点并且它有效(但想要更简单的东西):
Declare @PropIDs varchar(50)
Set @PropIDs = '1, 2'
IF OBJECT_ID('dbo.TempProp') IS NOT NULL DROP TABLE dbo.TempProp
CREATE TABLE [dbo].[TempProp](
[PropCode] [VarChar](3) NULL)
Set @Sql = 'Insert Into TempProp Select PropertyCode From Property where PropertyID In (' + @PropIDs + ')'
Execute (@Sql)
但我希望我能做到这一点:
Declare @PropIDs
Set @PropIDs = '1, 2'
Select PropertyCode
Into #TempProp
From Property where PropertyID IN (@PropIDs)
给我带来麻烦的是“...Property IN (@PropIDs)”。 有什么建议吗?
【问题讨论】:
-
如果您的值在这样的列表中,那么您必须使用动态 SQL。
-
我的意思是“...PropertyID IN (@PropIDs)”部分给我带来了麻烦
-
使用表值参数而不是逗号分隔的字符串。这不是 JSON,它们是单独的值。
标签: sql-server