使用相同的 ID 插入 Select
Insert Select into with same ID
在具有相同 ID 的列中插入拆分分隔字符串。
假设我有如下演示设置:
USE DEMODATABASE
GO
CREATE TABLE EMPLOYEEID_Address
(
ID INT ,
Address VARCHAR(MAX)
)
我声明了一些变量
DECLARE @id INT
DECLARE @Addresses VARCHAR(MAX)
DECLARE @SEPARATOR CHAR(1)
SET @id = 1
SET @SEPARATOR='|'
SET @Addresses='159 North Manchester Rd.
Edison, NJ 08817|209 West Fulton Lane
Braintree, MA 02184|...'
注意:@addresses
字符串是动态的而不是固定的
现在我的目标是使用 STRING_SPLIT
函数插入 table EMPLOYEEID_Address
多个具有相同 ID 的地址。
/*TARGET TABLE*/
Id Address
1 159 North Manchester Rd. Edison, NJ 08817
1 209 West Fulton LaneBraintree, MA 02184
1 ...
所以我尝试了:
INSERT INTO EMPLOYEEID_Address
(ID,Address)
Select @id as ID,
SELECT *
FROM STRING_SPLIT(@EMPLOYEENAME, @SEPARATOR)
但这没有用,而
INSERT INTO EMPLOYEEID_Address
(Address)
SELECT *
FROM STRING_SPLIT(@EMPLOYEENAME, @SEPARATOR)
结果为:
Id Address
NULL 159 North Manchester Rd. Edison, NJ 08817
NULL 209 West Fulton LaneBraintree, MA 02184
有什么方法可以实现这个目标或更好的方法来实现我的目标 table 并将 id 和字符串作为参数传递?
我想你想要:
INSERT INTO EMPLOYEEID_Address (ID, Address)
Select @id as ID, s.value
from STRING_SPLIT(@EMPLOYEENAME, @SEPARATOR) s;
string_split()
返回的列称为 value
。
在具有相同 ID 的列中插入拆分分隔字符串。
假设我有如下演示设置:
USE DEMODATABASE
GO
CREATE TABLE EMPLOYEEID_Address
(
ID INT ,
Address VARCHAR(MAX)
)
我声明了一些变量
DECLARE @id INT
DECLARE @Addresses VARCHAR(MAX)
DECLARE @SEPARATOR CHAR(1)
SET @id = 1
SET @SEPARATOR='|'
SET @Addresses='159 North Manchester Rd.
Edison, NJ 08817|209 West Fulton Lane
Braintree, MA 02184|...'
注意:@addresses
字符串是动态的而不是固定的
现在我的目标是使用 STRING_SPLIT
函数插入 table EMPLOYEEID_Address
多个具有相同 ID 的地址。
/*TARGET TABLE*/
Id Address
1 159 North Manchester Rd. Edison, NJ 08817
1 209 West Fulton LaneBraintree, MA 02184
1 ...
所以我尝试了:
INSERT INTO EMPLOYEEID_Address
(ID,Address)
Select @id as ID,
SELECT *
FROM STRING_SPLIT(@EMPLOYEENAME, @SEPARATOR)
但这没有用,而
INSERT INTO EMPLOYEEID_Address
(Address)
SELECT *
FROM STRING_SPLIT(@EMPLOYEENAME, @SEPARATOR)
结果为:
Id Address
NULL 159 North Manchester Rd. Edison, NJ 08817
NULL 209 West Fulton LaneBraintree, MA 02184
有什么方法可以实现这个目标或更好的方法来实现我的目标 table 并将 id 和字符串作为参数传递?
我想你想要:
INSERT INTO EMPLOYEEID_Address (ID, Address)
Select @id as ID, s.value
from STRING_SPLIT(@EMPLOYEENAME, @SEPARATOR) s;
string_split()
返回的列称为 value
。