使用SQL Server 2000多张值不插入
我想根据部门
ID Department
001 H001
002 F001
003 S001
004 D001
存储过程
ALTER PROC [dbo].[proc_Atnd1]
@Dep VARCHAR(100)
AS
BEGIN
DECLARE @SQL VARCHAR(1000)
DECLARE @Flag INT
SELECT @Flag=0
SELECT @SQL = 'SELECT ID FROM Table1 WHERE '
IF @Dep <>'All'
BEGIN
IF @Flag=1
BEGIN
SELECT @SQL = @SQL+' AND (DEPARTMENT IN ('''[email protected]+'''))'
END
ELSE
BEGIN
SELECT @SQL = @SQL+' (DEPARTMENT IN ('''[email protected]+'''))'
SELECT @Flag=1
END
END
if @SQL = 'SELECT ID FROM Table1 WHERE ' SELECT @SQL = 'SELECT ID FROM Table1'
Delete from tb_Sample
INSERT INTO tb_Sample EXEC(@SQL)
end
此存储过程正在为个人或选择ID所有部门,但它不适用于多个部门。
- 如果我传递值存储过程
All
手段,它显示所有的ID该部门 - 如果我选择
H001
手段,它是为H001
部门显示的ID。 - 如果我选择
H001
和D001
表示没有任何显示。
我将多个部门的值如H001,D001,F001
传递给存储过程。但是存储过程没有为所选部门插入一个ID
我的存储过程有什么问题?
需要存储过程的帮助
谢谢您的回复,我将使用逗号,而不是双引号或空格。现在我修改我的问题。 – Gopal
你需要用双引号包裹每个值......'''' –