27,580
社区成员
发帖
与我相关
我的任务
分享
CREATE PROCEDURE [dbo].[prtest]
@StrId varchar(max), --公文ID字符串
@count int out
AS
select @count=count(name) from tbA where id in (@StrId)
go
arrParams(0) = New SqlClient.SqlParameter("@StrId", SqlDbType.VarChar)
arrParams(0).Value = strDocID
--创建测试数据
create table tbA(id uniqueidentifier,name varchar(20))
insert into tbA
select 'abaa3baa-7338-4ff8-bd74-ac82986c6968','a' union all
select 'a2251aa2-d760-4728-adf4-4775decd7b9f','b' union all
select '398FB3BA-4CDE-4CD1-BA78-5F8E173838C6','c'
--查看
select * from tbA
/*
id name
------------------------------------ --------------------
ABAA3BAA-7338-4FF8-BD74-AC82986C6968 a
A2251AA2-D760-4728-ADF4-4775DECD7B9F b
398FB3BA-4CDE-4CD1-BA78-5F8E173838C6 c
*/
--创建存储过程
create procedure [dbo].[prtest]
@StrId varchar(max), --公文ID字符串
@count int out
as
select @count=count(name) from tbA where charindex(','+ltrim(id)+',',','+@StrId+',')>0
go
--测试存储过程
declare @c int
exec [prtest] 'abaa3baa-7338-4ff8-bd74-ac82986c6968,a2251aa2-d760-4728-adf4-4775decd7b9f',@c out
select @c as cou
/*
cou
-----------
2
*/
--创建测试数据
create table tbA(id uniqueidentifier,name varchar(20))
insert into tbA
select 'abaa3baa-7338-4ff8-bd74-ac82986c6968','a' union all
select 'a2251aa2-d760-4728-adf4-4775decd7b9f','b' union all
select '398FB3BA-4CDE-4CD1-BA78-5F8E173838C6','c'
--查看
select * from tbA
/*
id name
------------------------------------ --------------------
ABAA3BAA-7338-4FF8-BD74-AC82986C6968 a
A2251AA2-D760-4728-ADF4-4775DECD7B9F b
398FB3BA-4CDE-4CD1-BA78-5F8E173838C6 c
*/
declare @i varchar(1000)
set @i= 'abaa3baa-7338-4ff8-bd74-ac82986c6968,a2251aa2-d760-4728-adf4-4775decd7b9f'
select count(name) from tbA where charindex(','+ltrim(id)+',',','+@i+',')>0
/*
2
*/
--你这个不是转换的问题,是你的语句的问题
declare @t nvarchar(36)
set @t='abaa3baa-7338-4ff8-bd74-ac82986c6968'
select cast(@t as uniqueidentifier)
/*
ABAA3BAA-7338-4FF8-BD74-AC82986C6968
*/