Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将SELECT结果之外的变量插入表中_Sql_Sql Server_Tsql_Stored Procedures - Fatal编程技术网

Sql 将SELECT结果之外的变量插入表中

Sql 将SELECT结果之外的变量插入表中,sql,sql-server,tsql,stored-procedures,Sql,Sql Server,Tsql,Stored Procedures,我正在MSSQL上开发一个存储过程。这是我案例的一个简化示例 another code that has declared a variable @Country ... ... ... INSERT INTO Customers (CustomerName, Country) SELECT SupplierName, Country FROM Suppliers; 因此,我尝试做的是,插入前面代码中的@Country变量,而不是SELECT的Country值,但保留结果中的SupplierN

我正在MSSQL上开发一个存储过程。这是我案例的一个简化示例

another code that has declared a variable @Country
...
...
...
INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers;
因此,我尝试做的是,插入前面代码中的@Country变量,而不是SELECT的Country值,但保留结果中的SupplierName


我找不到类似的问题,反复试验也无济于事。

只需使用变量即可:

Insert Into Customers (CustomerName, Country)
Select SupplierName, @Country 
From Suppliers;

只需使用变量即可:

Insert Into Customers (CustomerName, Country)
Select SupplierName, @Country 
From Suppliers;

有人在@Siyual上击败了我,但只需使用下面选择的示例中的变量即可

CREATE TABLE #temp1 (
    id INT,
    value INT
    )

CREATE TABLE #temp2 (
    id INT,
    value INT
    )

DECLARE @newVal INT

SET @newVal = 10

INSERT INTO #temp1 (
    id,
    value
    )
VALUES (
    1,
    1
    )

INSERT INTO #temp1 (
    id,
    value
    )
VALUES (
    2,
    2
    )

INSERT INTO #temp1 (
    id,
    value
    )
VALUES (
    3,
    3
    )

INSERT INTO #temp2 (
    id,
    value
    )
SELECT id,
    @newVal
FROM #temp1

SELECT *
FROM #temp2

有人在@Siyual上击败了我,但只需使用下面选择的示例中的变量即可

CREATE TABLE #temp1 (
    id INT,
    value INT
    )

CREATE TABLE #temp2 (
    id INT,
    value INT
    )

DECLARE @newVal INT

SET @newVal = 10

INSERT INTO #temp1 (
    id,
    value
    )
VALUES (
    1,
    1
    )

INSERT INTO #temp1 (
    id,
    value
    )
VALUES (
    2,
    2
    )

INSERT INTO #temp1 (
    id,
    value
    )
VALUES (
    3,
    3
    )

INSERT INTO #temp2 (
    id,
    value
    )
SELECT id,
    @newVal
FROM #temp1

SELECT *
FROM #temp2

当您的测试远比最简单的解决方案复杂时!非常感谢。由于时间限制,将在4分钟内检查为最佳。当您的测试远比最简单的解决方案复杂时!非常感谢。由于时间限制,将在4分钟内检查为最佳。