Sql server 如何在动态查询中连接uniqueidentifier
我有一个动态查询,其中我想连接uniqueidentifier,但+和&运算符不支持,有没有一种方法可以将uniqueidentifier连接到动态字符串。我们将非常感谢您在这方面提供的任何样品或帮助。您是否尝试过先铸造或转换为字符串,然后再铸造Sql server 如何在动态查询中连接uniqueidentifier,sql-server,dynamic,Sql Server,Dynamic,我有一个动态查询,其中我想连接uniqueidentifier,但+和&运算符不支持,有没有一种方法可以将uniqueidentifier连接到动态字符串。我们将非常感谢您在这方面提供的任何样品或帮助。您是否尝试过先铸造或转换为字符串,然后再铸造 CAST(NEWID() AS NVARCHAR(36)) 我知道这很老了,但我在这篇文章中遇到了同样的问题,问题是我的唯一标识符周围没有足够的。我基本上有: “从接口中选择*,其中ID=''+CAST(@InterfaceID作为NVARCHAR(
CAST(NEWID() AS NVARCHAR(36))
我知道这很老了,但我在这篇文章中遇到了同样的问题,问题是我的唯一标识符周围没有足够的。我基本上有:
“从接口中选择*,其中ID=''+CAST(@InterfaceID作为NVARCHAR(36))+''和1=1'
我在00A(GUID的第一部分)附近遇到一个错误,说语法不正确。问题在于,这是解析到:
从ID=00A3F5B5-C7B3-4128-B03A-EADE79129F40和1=1的界面中选择*
通过将我的查询更改为:
“从接口中选择*,其中ID='''+CAST(@InterfaceID作为NVARCHAR(36))+''和1=1'
我得到了三个撇号:
从接口中选择*,其中ID='00A3F5B5-C7B3-4128-B03A-EADE79129F40'和1=1
这是正确的
希望对您有所帮助。我试过了,但它不起作用,在cast附近给出了错误的语法,或者在im中转换converting@Yaser:“选择CAST(NEWID()作为NVARCHAR(36))”。请试着自己想想。对不起,亲爱的朋友,我的where条件是where(CreatedBy=CAST(@p_CreatedBy AS NVARCHAR(100)),这里@CreatedBy是一个唯一的标识符,我甚至尝试过转换它,没有得到任何结果。请help@YaserCAST()的Guid格式可能与“CreatedBy”列的格式不同。手动运行两个版本,并检查字符串是否遵循相同的格式。如果不是,则将另一个“CreatedBy”转换为Guid,并比较Guid。这可能是问题所在,但我如何做到这一点