带变量的sql语句怎么写?

dropping 2007-12-18 05:17:42

DECLARE @strsql VARCHAR(8000),@guid varchar(10)
SET @guid='1027897'
SET @strsql='SELECT * FROM OPENQUERY(ODB,''SELECT COMPANY_ID,DEPARTMENT_ID,DEPARTMENT_BOSS_GUID FROM GUID_DEPARTMENT
WHERE DEPARTMENT_ID=(SELECT DEPTNO FROM GUID_EMPLOYEE E,GUID_ACCOUNT A
WHERE E.GUID='+@guid+' AND E.COMPANY_ID=A.AD_COM AND A.GUID='+@guid+')'')'

print @strsql
EXEC @strsql

执行结果为:
SELECT * FROM OPENQUERY(ODB,'SELECT COMPANY_ID,DEPARTMENT_ID,DEPARTMENT_BOSS_GUID FROM GUID_DEPARTMENT
WHERE DEPARTMENT_ID=(SELECT DEPTNO FROM GUID_EMPLOYEE E,GUID_ACCOUNT A
WHERE E.GUID=1027897 AND E.COMPANY_ID=A.AD_COM AND A.GUID=1027897)')
伺服器: 訊息 203,層級 16,狀態 2,行 8
名稱 'SELECT * FROM OPENQUERY(ODB,'SELECT COMPANY_ID,DEPARTMENT_ID,DEPARTMENT_BOSS_GUID FROM GUID_DEPARTMENT
WHERE DEPARTMENT_ID=(SELECT DEPTNO FROM GUID_EMPLOYEE E,GUID_ACCOUNT A
WHERE E.GUID=1027897 AND E.COMPANY_ID=A.AD_COM AND A.GUID=1027897)')' 不是有效的識別項。

上面的SQL该怎么写?
用在存储过程里的。
...全文
136 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
大宇_ 2007-12-18
  • 打赏
  • 举报
回复
EXEC(@strsql)
dobear_0922 2007-12-18
  • 打赏
  • 举报
回复
钻钻速度真快,,,
-狙击手- 2007-12-18
  • 打赏
  • 举报
回复
DECLARE @strsql VARCHAR(8000),@guid varchar(10)
SET @guid='1027897'
SET @strsql='SELECT * FROM OPENQUERY(ODB,''SELECT COMPANY_ID,DEPARTMENT_ID,DEPARTMENT_BOSS_GUID FROM GUID_DEPARTMENT
WHERE DEPARTMENT_ID=(SELECT DEPTNO FROM GUID_EMPLOYEE E,GUID_ACCOUNT A
WHERE E.GUID='''+@guid+''' AND E.COMPANY_ID=A.AD_COM AND A.GUID='''+@guid+''')'')'

print @strsql
EXEC (@strsql)
dobear_0922 2007-12-18
  • 打赏
  • 举报
回复
DECLARE @strsql VARCHAR(8000),@guid varchar(10)
SET @guid='1027897'
SET @strsql='SELECT * FROM OPENQUERY(ODB,''SELECT COMPANY_ID,DEPARTMENT_ID,DEPARTMENT_BOSS_GUID FROM GUID_DEPARTMENT
WHERE DEPARTMENT_ID=(SELECT DEPTNO FROM GUID_EMPLOYEE E,GUID_ACCOUNT A
WHERE E.GUID='+@guid+' AND E.COMPANY_ID=A.AD_COM AND A.GUID='+@guid+')'')'

print @strsql
EXEC(@strsql)
-狙击手- 2007-12-18
  • 打赏
  • 举报
回复
DECLARE @strsql VARCHAR(8000),@guid varchar(10)
SET @guid='1027897'
SET @strsql='SELECT * FROM OPENQUERY(ODB,''SELECT COMPANY_ID,DEPARTMENT_ID,DEPARTMENT_BOSS_GUID FROM GUID_DEPARTMENT
WHERE DEPARTMENT_ID=(SELECT DEPTNO FROM GUID_EMPLOYEE E,GUID_ACCOUNT A
WHERE E.GUID='''+@guid+''' AND E.COMPANY_ID=A.AD_COM AND A.GUID='''+@guid+''')'')'

print @strsql
EXEC @strsql
子陌红尘 2007-12-18
  • 打赏
  • 举报
回复

EXEC @strsql

==>

EXEC(@strsql)

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧