假设我在查询窗口中编写了一个Create Table脚本并运行它。所以表格已经创建了。现在,这个脚本文件在哪里生成(系统表)。我的意思是如果我做了
select * from sys.syscomments
我将在“Text”列中获取存储过程或函数的脚本。同样,为表格或视图获得相同的任何方式?
任何DMV等......
提前致谢
答案 0 :(得分:0)
我不确定脚本的存储位置,但如果您希望能够查看脚本语言来创建表,那么在SQL2008 R2中(我很确定SQL2008)SSMS可以生成脚本在飞行中。只需选择您的表(或视图,SP等...)并右键单击。从上下文菜单中,选择“脚本表”作为“创建到”(或从列表中选择的任何其他修改)。然后您可以选择输出位置 - 新查询编辑器窗口可能最容易看到您的结果。从那里你有该表创建的基本语言,你可以从那里修改或保存它。
答案 1 :(得分:0)
以下查询也适用于视图
select * from sys.syscomments
要获取表格的脚本,您必须
Right Click on database >> tasks >> Generate Scripts >> choose objects (select tables)
我认为这是获取表脚本的可能方法。
答案 2 :(得分:0)
对于观看次数,您可以使用以下列中的VIEW_DEFINITION
列:
SELECT *
FROM INFORMATION_SCHEMA.VIEWS
我认为没有表的等价物,因为表不需要存储的定义,因为表本身就是定义。如果您需要复制表结构,那么最好的方法可能是使用:
SELECT *
INTO NewTable
FROM OldTable
WHERE 0 = 1
您可以尝试使用系统视图生成自己的脚本并创建动态SQL,例如this可以帮助您入门
这不会造成约束,也许我错过了一些东西,或者导致它破裂,但总的要点就在那里。您也可以在SQL之外执行此操作,非常好In this Answer。
HOWEVER 我应该补充一下我不会宽恕这些方法的使用。我可以想到几乎没有必要以这种方式以编程方式复制表结构的场景。如果有必要将结构复制为一次,那么最好使用SSMS内置的生成脚本函数来完成这项工作。