在插入内部的选择中指定变量

时间:2016-04-29 13:38:52

标签: sql sql-server tsql

我试图在一个在插入内部运行的选择中获取变量的赋值。

INSERT INTO myTable
            (Value1,Value2,Value3)
            VALUES
            (
            (
                    SELECT 'SomeText' + @MyGuid = lower(convert(varchar(36), newid())) + '"Some more text" />' AS Value1,
                    @MyGuid AS Value2,
                    columnX AS Value3 FROM myOtherTable));

基本上,我需要使用相同的变量两次,但赋值标记为

Incorrect syntax near '='.

我尝试更改分配语法,但它没有帮助。 我需要Guids是一样的。 是否可以这样做?

1 个答案:

答案 0 :(得分:1)

您可以使用MyMock m; EXPECT_CALL( m, f(_,_,_,_) ).With(Args<1,2>(Range(ElementsAre(a,b,c))); 执行此操作,方法是事先为每行选择CTE值,然后在NEWID()上按列进行转换:

INSERT