gpt4 book ai didi

mysql - 使用 SET 语句的 SQL 存储过程

转载 作者:行者123 更新时间:2023-11-30 00:24:48 25 4
gpt4 key购买 nike

我有一个名为@TempGeog的表

Declare @TempGeog table (type VARCHAR(MAX))

DECLARE @statement1 NVARCHAR(MAX)

SET @statement1 = 'insert into #CountyTemp select th.STRLOGRECNO,tt.county from [DC_2010_'+@geographyType+'] th
inner join'+ @TempGeog +' tt on th.NAMELSAD10 = tt.county ;'
EXEC (@statement1);

我无法在语句1中使用表@TempGeog

Error:Must declare scalar variable "@TempGeog"

我的 SQL 查询应该根据用户选择的地理类型动态构建。

最佳答案

如果您想以我不推荐的方式传递表名称。 @TempGeog 需要声明为 varchar 数据类型而不是 table 类型。

作品:

DECLARE @table VARCHAR(20) = 'MyTable'
DECLARE @set VARCHAR(100) = 'Select * from ' + @table
PRINT @set

失败:

DECLARE @table2 TABLE (id int)
DECLARE @set2 VARCHAR(100) = 'Select * from ' + @table2
PRINT @set2

根据您的编辑,您需要将代码更改为此

SET @statement1 = '
Declare @TempGeog table (type VARCHAR(MAX))

insert into #CountyTemp select th.STRLOGRECNO,tt.county from [DC_2010_' + @geographyType + '] th
inner join @TempGeog tt on th.NAMELSAD10 = tt.county ;'
EXEC (@statement1);

关于mysql - 使用 SET 语句的 SQL 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22970998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com