select sys.fn_PhysLocFormatter(%%physloc%%) as RID, *
創(chuàng)新互聯(lián)主營普蘭網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,成都app開發(fā),普蘭h5小程序制作搭建,普蘭網(wǎng)站營銷推廣歡迎普蘭等地區(qū)企業(yè)咨詢
from table a
CROSS APPLY sys.fn_physLocCracker (%%physloc%%) AS plc
借用系統(tǒng)視圖來生成
1、查詢SQL中的所有表: Select TABLE_NAME FROM 數(shù)據(jù)庫名稱.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' 執(zhí)行之后,就可以看到數(shù)據(jù)庫中所有屬于自己建的表的名稱 2、查詢SQL中所有表及列: Select dbo.sysobjects.name as Table_name, dbo.syscolumns.name AS Column_name FROM dbo.syscolumns INNER JOIN dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id Where (dbo.sysobjects.xtype = 'u') AND (NOT (dbo.sysobjects.name LIKE 'dtproperties')) 3、在Sql查詢分析器,還有一個簡單的查詢方法: EXEC sp_MSforeachtable @command1="sp_spaceused '?'" 執(zhí)行完之后,就可以看到數(shù)據(jù)庫中所有用戶表的信息 4、查詢總存儲過程數(shù):select count(*) 總存儲過程數(shù) from sysobjects where xtype='p' 附:xtype類型D = 默認值或 DEFAULT 約束
F = FOREIGN KEY 約束L = 日志FN = 標量函數(shù)
IF = 內(nèi)嵌表函數(shù)
P = 存儲過程
PK = PRIMARY KEY 約束(類型是 K)
RF = 復制篩選存儲過程S = 系統(tǒng)表TF = 表函數(shù)
TR = 觸發(fā)器U = 用戶表UQ = UNIQUE 約束(類型是 K)V = 視圖X = 擴展存儲過程 另:在sqlserver中取得某個數(shù)據(jù)庫中所有表名的sql語句 select sysobjects.name from sysobjects.xtype ='U';SELECT name
WHERE (xtype = 'U') 在數(shù)據(jù)庫的sysobjects表里有這個數(shù)據(jù)庫全部表的信息, xtype值為'U'的就是表名 注意:一般通過上述方法獲得全部用戶表示都會有一個dtproperties表,SQLSERVER 默認它也是用戶表,想要從用戶表中排出,需要加上限定條件 status0,即:select * from sysobjects where xtype='U' and status0
將那個字段設為主鍵
------解決方案--------------------------------------------------------
要不然
你只能在邏輯上做判斷、先查詢數(shù)據(jù)是否有當前的符號、如果有
就另填。沒有的話,就插入
------解決方案--------------------------------------------------------
------解決方案--------------------------------------------------------
要是這個字段不是外鍵的話,可以設成主鍵,否則,可以由數(shù)據(jù)庫的標識字段做主鍵,給這一列
加上唯一約束
------解決方案--------------------------------------------------------
主鍵或者unique
約束(這個oracle
有,不知sqlserver
有沒有)。
這個好像不行吧。
------解決方案--------------------------------------------------------
設主鍵。用sequence
自增。設置主鍵
然后也可以寫觸發(fā)器做判斷修改
列設成整型,并自增
SqlServer中的自增的ID的最后的值:
SELECT
SCOPE_IDENTITY() --返回插入到同一作用域中的 IDENTITY 列內(nèi)的最后一個 IDENTITY 值。SELECT
@@IDENTITY --返回插入到當前會話中任何作用域內(nèi)的最后一個 IDENTITY 列值SELECT
IDENT_CURRENT('TbName')--不受作用域和會話的限制,而受限于指定的表。IDENT_CURRENT
返回為任何會話和作用域中的特定表所生成的值。
一個作用域就是一個模塊——存儲過程、觸發(fā)器、函數(shù)或批處理。因此,如果兩個語句處于同一個存儲過程、函數(shù)或
批處理中,則它們位于相同的作用域中。對于馬上使用的剛才插入的新記錄ID用SCOPE_IDENTITY()是最合適的;對于想要得到一系列的操作中最
后得到的那個自增的ID最好用@@IDENTITY;對于想要得到一個表中的最后一個插入操作所產(chǎn)生的ID的最好用
IDENT_CURRENT('TBName') DECLARE @TMP_ID INT SET @TMP_ID =
IDENT_CURRENT('BID_EvaluateItem') IF ((@TMP_ID IS NOT NULL)
AND (@TMP_ID 0)) BEGIN --其它的操作
設成GUID類型 select newid() 可保證全球唯一