CREATE PROCEDURE aa
(
@Name NVARCHAR(50)
)
AS
DECLARE @SQL NVARCHAR(3000)SET @SQL='SELECT * FROM A WHERE"
SET @SQL=@SQL+' Name='+@NameEXEC(@SQL)
GO现在有个问题我在SQL调试输入器里调试,输入张三,调试就弹出错误对话框:列名张三无效 输入'张三'能正常显示,用C#调用也是一样的结果,怎么回事啊,我@Name不是已经是字符串了嘛
(
@Name NVARCHAR(50)
)
AS
DECLARE @SQL NVARCHAR(3000)SET @SQL='SELECT * FROM A WHERE"
SET @SQL=@SQL+' Name='+@NameEXEC(@SQL)
GO现在有个问题我在SQL调试输入器里调试,输入张三,调试就弹出错误对话框:列名张三无效 输入'张三'能正常显示,用C#调用也是一样的结果,怎么回事啊,我@Name不是已经是字符串了嘛
(
@Name NVARCHAR(50)
)
AS
DECLARE @SQL NVARCHAR(3000)SET @SQL='SELECT * FROM A WHERE'
SET @SQL=@SQL+' Name='''+@Name+''''EXEC(@SQL)
GO
If Object_id('T','U') Is Not null
Drop Table T
Go
Create Table T(ID int Identity(1,1) Primary Key,[Name] nvarchar(50))
Insert Into T
Select N'张三' Union All
Select N'李四'
Go--存储过程
If Object_id('aa','P') Is Not null
Drop Proc aa
Go
Create Proc aa
(
@Name nvarchar(50)
)
AS
Exec sp_executesql N'Select * From T Where Name=@Name',N'@Name nvarchar(50)',@Name
--Select * From T Where Name=@Name
GOExec aa N'张三'/*
ID Name
----------- --------------------------------------------------
1 张三
*/