动态生成的TSQL中如何表达回车?

Ki1381 2009-01-14 11:55:56
只是想动态执行一句再简单不过的语句:

declare @sql varchar(8000)

set @sql='use DB01' + (char(13) + char(10)) + 'GO'
--print @sql
exec(@sql)



居然报错

消息 102,级别 15,状态 1,第 2 行
'GO' 附近有语法错误。


如何解决?谢谢!
...全文
104 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fcuandy 2009-01-14
  • 打赏
  • 举报
回复
你可以加回车,
也可以只加回车符,或只加换行符。

你的问题主要错在GO
水族杰纶 2009-01-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ki1381 的回复:]
谢楼上的,这样是可以的,但我还是想知道如何用回车
[/Quote]
print   char(65)+char(10)+char(97)   
print char(66)+char(13)+char(80)
/*A
a
B
P
*/
ChinaJiaBing 2009-01-14
  • 打赏
  • 举报
回复

exec('select * from 表')
csdyyr 2009-01-14
  • 打赏
  • 举报
回复
--学习,这样可以

use dskaisung
GO
zjcxc 元老 2009-01-14
  • 打赏
  • 举报
回复
对于回车, 怎么用都可以, 比如你原来的那样
也可以是下面这样
set @sql='use DB01
-- 新的一行
'
--print @sql
exec(@sql)
Ki1381 2009-01-14
  • 打赏
  • 举报
回复
谢楼上的,这样是可以的,但我还是想知道如何用回车
zjcxc 元老 2009-01-14
  • 打赏
  • 举报
回复
联机帮助上的原话
[Quote=引用 sql server 联机帮助]
GO 不是 Transact-SQL 语句;它是可由 sqlcmd 和 osql 实用工具以及 SQL Server Management Studio 代码编辑器识别的命令。

SQL Server 实用工具将 GO 解释为应该向 SQL Server 实例发送当前批 Transact-SQL 语句的信号。当前批语句由上一 GO 命令后输入的所有语句组成,如果是第一条 GO 命令,则由即席会话或脚本开始后输入的所有语句组成。

GO 命令和 Transact-SQL 语句不能在同一行中。但在 GO 命令行中可包含注释。

用户必须遵照使用批处理的规则。例如,在批处理中的第一条语句后执行任何存储过程必须包含 EXECUTE 关键字。局部(用户定义)变量的作用域限制在一个批处理中,不可在 GO 命令后引用。


[/Quote]
zjcxc 元老 2009-01-14
  • 打赏
  • 举报
回复
go 不是 t-sql 语句, 所以你不能在 t-sql中用go
水族杰纶 2009-01-14
  • 打赏
  • 举报
回复
declare @sql varchar(8000) 

set @sql='use DB01' + (char(13) + char(10))
--print @sql
exec(@sql)
Ki1381 2009-01-14
  • 打赏
  • 举报
回复
收到,谢各位

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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