回答

收藏

使用动态变量名称创建SQL表

技术问答 技术问答 564 人阅读 | 0 人回复 | 2023-09-14

我想使用变量名创建备份SQL表。
9 g2 V  }3 P/ x( Y& H, F8 c( W类似于
, ~7 _+ K: i+ ^DECLARE @SQLTable Varchar(20) - V6 u# T1 x& X, [  ~+ f
SET @SQLTable = 'SomeTableName' + ' ' + '20100526' 1 W: i: W1 h2 q% l
SELECT * INTO quotename(@SQLTable)
5 F- d4 h& U( b9 @, v- j FROM SomeTableName$ x6 W6 t& N6 r
但是我越来越* \. g  {1 I6 F1 M, T+ {3 a) U9 Q( E
5 j3 q$ i9 W- y" v
‘@SQLTable’附近的语法不正确。
$ r- {# ]# l" A/ J, q( l. X" q' x
8 ^- S% v4 V, E# L# M
这只是用于维护的小脚本的一部分,因此我不必担心注射。
& D; i) x! L3 p" u1 B                * l- u" l5 s# Z  t
解决方案:
; x) v% g! O5 X4 Q                + D) Y! p% N) W. ?

1 U7 G% N& M% M1 `+ c* N* S
6 ^! k: ]3 _6 t- D                DECLARE @MyTableName nvarchar(20);
, p$ j' W7 {6 ^3 L7 _: K+ PDECLARE @DynamicSQL nvarchar(1000);5 |; d. L7 e- c2 l& b0 X: ]; Y* l
SET @MyTableName = "FooTable";0 C9 f2 N) f0 A! H" A7 V" {. I

8 r8 u5 C# b+ z6 h  RSET @DynamicSQL = N'SELECT * INTO ' + @MyTableName + ' FROM BarTable';
( F0 A1 n* x1 F5 i7 mEXEC(@DynamicSQL);
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则